Det verkar ha något att göra med hur dina INSERT-satser bildas. Se denna fiol , som är något modifierad från ditt exempel. I det här fallet får du inga luckor (men det kommer du förmodligen om du lägger till fler inlägg... det gör det faktiskt .).
EDIT:Efter lite mer grävande upptäckte jag att du inte får luckor om du använder MyISAM-motorn (i motsats till InnoDB). Så det kanske är ett fel eller ett konstigt designval i InnoDB...?
EDIT 2:Ytterligare grävande har avslöjat denna bugg
, arkiverat mot InnoDB-lagringsmotorn. Det matchar den ursprungliga frågans användningsfall väldigt nära. Ingen lösning på felet har tillhandahållits, men det verkar som att en lösning är att ställa in innodb_autoinc_lock_mode
till 0 i din my.cnf-fil innan mysqld startar.