Immaginiamo una tabella del genere

codice:
tabella(
  campo_id bigint(20) not null auto_increment,
  campo_dati varchar(25) not null,
  primary key (campo_id)
);
e di fare le seguenti query:

codice:
INSERT INTO tabella(campo_dati) VALUES('Valore di prova 1');
DELETE FROM tabella;
INSERT INTO tabella(campo_dati) VALUES('Valore di prova 2');
SELECT * FROM tabella;
Avremo quindi in output una cosa del genere

+----------+------------------+
| campo_id | campo_dati |
+----------+------------------+
| 2 | Valore di prova 2 |
+----------+------------------+

1 row in set (0.05 sec)
Come si può notare, il campo_id ha valore 2, mentre il valore 1 rimane inutilizzato.
Ora, datemi pure del pazzoide ma la cosa mi infastidisce!
Esiste una query che impedisce che succeda questo o comunque un modo per evitarlo?

In locale risolvevo facendo dopo l'eliminazione un'ottimizazione della tablella (optimize table tablella) ma quando ho caricato il database sullo spazio avuto con l'hosting, ho notato che lì, l'ottimizzazione non cambia nulla!

A voi la parola e grazie per l'attenzione.