INSERTステートメントの形成方法と関係があるようです。 このフィドル を参照してください。 、これはあなたの例から少し変更されています。この場合、ギャップは発生しません(ただし、挿入を追加すると、おそらくギャップが発生します... 実際には 。)。
編集:もう少し掘り下げた後、(InnoDBではなく)MyISAMエンジンを使用してもギャップが生じないことがわかりました。したがって、おそらくそれはInnoDBの欠陥または奇妙な設計上の選択です...?
編集2:さらに掘り下げると、このバグ
が明らかになりました。 、InnoDBストレージエンジンに対して提出されました。これは、元の質問のユースケースと非常によく一致しています。バグの解決策は提供されていませんが、1つの解決策はinnodb_autoinc_lock_mode
を設定することであるようです。 mysqldを起動する前にmy.cnfファイルで0にします。