Mysql
 sql >> Database >  >> RDS >> Mysql

Perché a volte c'è una o più lacune nel valore della colonna di incremento automatico?

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.