このonline bookは、MySQLがインデックスデータにB-Treesを利用する仕組みを記述しています。時間の複雑さは、ノードあたりのエントリ数に依存します。MySQLインデックスのBツリーのノードにはいくつのエントリがありますか?
1つのノードでMySQLが保持するエントリの数はいくつですか?
このonline bookは、MySQLがインデックスデータにB-Treesを利用する仕組みを記述しています。時間の複雑さは、ノードあたりのエントリ数に依存します。MySQLインデックスのBツリーのノードにはいくつのエントリがありますか?
1つのノードでMySQLが保持するエントリの数はいくつですか?
Thumbのルール:100.
これは、InnoDBデータのBTreesとIndex BTreesに適用されます。しかし、それはかなり離れている可能性があります。
極端なもの:ノード内に1つのデータレコード - 大きな行サイズおよび/またはアクティビティ(DELETEs
など)が原因です。もう1つのケース:レコードが1つのテーブルは、まだ完全な16KBのブロックを占有します。
その他の極端な例:ノード内の500のインデックスレコード - キーのサイズが小さく、レコードを削除したアクティビティが不足しています。
ノードには16KBの鍵がありますか? –
@magic_al - InnoDBは、データツリーノードに16KBブロックを使用します。索引BTreeノードの場合も同様です。 –
Thumbのその他のルール:[_Rick's RoTs_](http://mysql.rjweb.org/doc.php/ricksrots) –
約(16kb-0.5kオーバーヘッド)* fillfactor /(キー値+プライマリキーの平均サイズ)。 – Solarflare