ホームページ > データベース > mysql チュートリアル > 自動インクリメントの主キー ID にギャップがあるのはなぜですか?

自動インクリメントの主キー ID にギャップがあるのはなぜですか?

Patricia Arquette
リリース: 2024-11-27 00:51:12
オリジナル
854 人が閲覧しました

Why Are There Gaps in My Auto-Increment Primary Key IDs?

自動インクリメント主キー: カウントのギャップについて説明

自動インクリメント主キーがあるにもかかわらず、割り当てられたキーにギャップがあることに気付きました。 ID。行数と最大 ID の間に不一致が生じます。この動作は自動インクリメント メカニズムの固有の側面であり、心配する必要はありません。

その理由を理解するには、2 つの重複するトランザクションを含む次のシナリオを考慮してください。

  1. トランザクション 1 の挿入レコードを作成し、ID 42 を取得します。
  2. トランザクション 2 は挿入を開始し、ID を受け取ります43.

次に、トランザクション 1 が失敗してロールバックしたとします。この場合、割り当てられたID42は未使用のままとなる。その結果、次に割り当てられる ID は 43 となり、44 のギャップが残ります。

この動作は、同時トランザクションが相互にブロックされずに続行できるようにする安全策です。継続的な ID を強制するには、トランザクションの順次実行が必要となり、スケーラビリティに重大な影響を与える可能性があります。

レコードを削除していない場合でも、自動インクリメント ID のギャップは予期されており、問題を示すものではありません。

以上が自動インクリメントの主キー ID にギャップがあるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート