Q:

Why mysql autoincrement increments the last used id rather then the last existing id

I am using mysql, and am looking at a strange behavior. 
Scenario :
I have a table having table_id as primary key, which is set to auto-increment.
table_id  more_columns
1         some value
2          others

Now if i delete row 2, and insert one more row, the table_id becomes 3 (Expected is 2)
table_id  more_columns
    1         some value
    3          recent

Why is it so? Here I am loosing some ids (I know they are not important). Please put some lights on this behavior

A:

The auto_increment value is a counter stored internally for each table. The counter is only increased, never decreased. 
Every syntactically correct INSERT statement fired against the table increments this counter, even when it is rolled back and also when you define an insert value for the primary key.

