2017-09-22 8 views
0

このonline bookは、MySQLがインデックスデータにB-Treesを利用する仕組みを記述しています。時間の複雑さは、ノードあたりのエントリ数に依存します。MySQLインデックスのBツリーのノードにはいくつのエントリがありますか?

1つのノードでMySQLが保持するエントリの数はいくつですか?

+1

約(16kb-0.5kオーバーヘッド)* fillfactor /(キー値+プライマリキーの平均サイズ)。 – Solarflare

答えて

1

Thumbのルール:100.

これは、InnoDBデータのBTreesとIndex BTreesに適用されます。しかし、それはかなり離れている可能性があります。

極端なもの:ノード内に1つのデータレコード - 大きな行サイズおよび/またはアクティビティ(DELETEsなど)が原因です。もう1つのケース:レコードが1つのテーブルは、まだ完全な16KBのブロックを占有します。

その他の極端な例:ノード内の500のインデックスレコード - キーのサイズが小さく、レコードを削除したアクティビティが不足しています。

+0

ノードには16KBの鍵がありますか? –

+1

@magic_al - InnoDBは、データツリーノードに16KBブロックを使用します。索引BTreeノードの場合も同様です。 –

+1

Thumbのその他のルール:[_Rick's RoTs_](http://mysql.rjweb.org/doc.php/ricksrots) –

関連する問題