Sembra avere qualcosa a che fare con il modo in cui vengono formate le tue istruzioni INSERT. Vedi questo violino , che è leggermente modificato dal tuo esempio. In questo caso, non ottieni spazi vuoti (ma probabilmente lo farai se aggiungi più inserti... in effetti, lo fa .).
EDIT:dopo un po' più di scavo, ho scoperto che non si ottengono spazi vuoti se si utilizza il motore MyISAM (al contrario di InnoDB). Quindi, forse è un difetto o una curiosa scelta di design in InnoDB...?
EDIT 2:Ulteriori ricerche hanno rivelato questo bug
, presentato contro il motore di archiviazione InnoDB. Corrisponde molto strettamente al caso d'uso della domanda originale. Non è stata fornita alcuna soluzione al bug, tuttavia sembra che una soluzione sia impostare innodb_autoinc_lock_mode
a 0 nel tuo file my.cnf prima dell'avvio di mysqld.