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

高洛峰
リリース: 2016-12-02 13:26:13
オリジナル
1432 人が閲覧しました

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

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

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!