Вы не можете гарантировать, что идентификаторы являются последовательными. Обычно происходит то, что транзакция откатывается. Это может произойти по многим причинам - например, тупик. Идентификаторы распределяются до того, как строки вставляются, поэтому, если вставка создает взаимоблокировку, а поток проигрывает, транзакция откатывается, вставка завершается неудачно, а идентификатор «теряется».
Это не ненормальная ситуация; каждое приложение должно быть способно выдерживать (некоторые) тупики. Это часть использования движка, такого как InnoDB (и в равной степени это происходит в MSSQL, Oracle и т. Д.).