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バイト長)。