Mysql のテーブル設計では、通常、業務に関係のない自動インクリメントカラムが主キーとして使用されます。
これは、Mysql がデフォルトで B ツリー インデックスを使用するためです。これは、単純に「ソートされた高速検索構造」として理解できます。
以下は B ツリー、2 層 B+ ツリーの構造図です。各ページのファンアウトは 4 で、1 から 6 までの 5 つのレコードがあり、各ページの最小値が保存されます。 ; 各ページは二重リンク リストを介してリンクされています。レコードの移動:
InnoDB の実装では、最後の挿入の位置と、最後の挿入のインクリメント/デクリメント識別子がインデックス ページごとに保持されます。この情報に基づいて、InnoDB はページに新しく挿入されたレコードがインクリメント/デクリメント制約を満たしているかどうかを判断できます。制約が満たされている場合は、最適化された分割戦略が採用されます。そのため、連続的に増加するシーケンスを使用することをお勧めします。ただし、逐次増加を満たす限り、データベースの自動インクリメント フィールドである必要はありません。多くの大規模アプリケーションでは、ID ジェネレーターが順次増加します。