interlude

プログラミングや私的なこと

B-treeインデックスについて

単純にインデックスを設定すると インデックスとはテーブルに格納されているデータを高速に取り出すための仕組みのこと。 B-tree(Balanced Tree)インデックスはRDBMSのサポートが一番多い。

B-treeインデックスのメリット

  • どのようなキー値でも、同一の速度が期待できる
  • データが大量でも良いパフォーマンスが期待できる
  • 範囲検索が出来る
  • ソートが高速
  • 一意な情報であればより高速

B-treeインデックスのデメリット

  • 有効に動作するのは取得するデータの量が表全体の5%~15%以下の場合。
  • テーブルの容量が小さい場合は、全表走査した方が高速
  • データの挿入や削除は検索に比べると遅くなる。

B-treeインデックスの図を見ると、何かに似ていると思ったら二分探索木です。それもそのはず、B-treeは二分木探索の進化系だから。 テーブルの容量が小さい場合は全文検索したほうが早いというのは意外です。 全部インデックス設定すればいいかーと思っていました。 インデックスの基礎知識