ホームページ  >  記事  >  データベース  >  Mysql InnoDB がビジネスとは関係のない自動インクリメント主キーを追加するのはなぜですか?

Mysql InnoDB がビジネスとは関係のない自動インクリメント主キーを追加するのはなぜですか?

高洛峰
高洛峰オリジナル
2016-12-02 13:26:131409ブラウズ

Mysql のテーブル設計では、通常、業務に関係のない自動インクリメントカラムが主キーとして使用されます。
これは、Mysql がデフォルトで B ツリー インデックスを使用するためです。これは、単純に「ソートされた高速検索構造」として理解できます。
以下は B ツリー、2 層 B+ ツリーの構造図です。各ページのファンアウトは 4 で、1 から 6 までの 5 つのレコードがあり、各ページの最小値が保存されます。 ; 各ページは二重リンク リストを介してリンクされています。レコードの移動:

Mysql InnoDB がビジネスとは関係のない自動インクリメント主キーを追加するのはなぜですか?

InnoDB の実装では、最後の挿入の位置と、最後の挿入のインクリメント/デクリメント識別子がインデックス ページごとに保持されます。この情報に基づいて、InnoDB はページに新しく挿入されたレコードがインクリメント/デクリメント制約を満たしているかどうかを判断できます。制約が満たされている場合は、最適化された分割戦略が採用されます。そのため、連続的に増加するシーケンスを使用することをお勧めします。ただし、逐次増加を満たす限り、データベースの自動インクリメント フィールドである必要はありません。多くの大規模アプリケーションでは、ID ジェネレーターが順次増加します。 Mysql InnoDB がビジネスとは関係のない自動インクリメント主キーを追加するのはなぜですか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。