InnoDB トランザクションエンジンです。
これは、次のシナリオでは次のことを意味します。
Session Aレコード1を挿入しますSession Bレコード2を挿入しますSession Aロールバック
、ギャップまたはSession Bの可能性があります Session Aまでロックされます コミットまたはロールバック。
InnoDB 設計者(他のほとんどのトランザクションエンジン設計者と同様)は、ギャップを許容することを選択しました。
ドキュメント> :
自動インクリメントカウンターにアクセスする場合、
InnoDB特別なテーブルレベルのAUTO-INCを使用します 現在のSQLの最後まで保持するロック トランザクションの終わりではなく、ステートメント。AUTO_INCREMENTを含むテーブルへの挿入の同時実行性を向上させるために、特別なロック解放戦略が導入されました。 列…
InnoDBサーバーが実行されている限り、メモリ内の自動インクリメントカウンターを使用します。サーバーを停止して再起動すると、InnoDB最初のINSERTの各テーブルのカウンターを再初期化します 前に説明したように、テーブルに。
idが怖い場合 列を折り返す、BIGINTにします (8バイト長)。