インデックスの効果について

はじめに

「indexを貼る→検索が速くなる」ということは必ずしも言えないということについて書いていきます。

(場合によっては)インデックスを貼っても効果が無いbyIBM

  • indexを貼ることによる効果に関する資料は、以下のスライドの26枚目にあります。

DBパフォーマンスチューニングの基礎:インデックス入門

  • 上記のスライドによると、IBMとしても、indexを貼ることの効果が無い場合があることを示しています。

具体的にどの程度までがindexを貼ることの効果が出るのか

  • 以下のURL先に調査結果があります。


インデックス範囲スキャンとフルテーブルスキャンの損益分岐点 - kagamihogeの日記

  • 上記のサイトによると、
    • 全体の10%以下のデータが含まれるindexが最適(つまり、ほぼ同じ割合だとして10択以上)
    • データの割合が減れば減るほど(選択肢が多ければ多いほど)indexの効果が大きくなる
    • 環境に依存するため、調査が必要
    • 範囲検索で常にインデックス範囲スキャンが有利かというとそうでもない
    • 損益分岐点はどっかにある

技術的に考えると、少なくとも0か1かのような2分値には効果がない

  • 以下のURL先に、なぜ2分値にindexを貼る効果が無いのか書かれています。


RDBMSをブラックボックスにしない - [第9回]効果のないインデックス---「性別」に付けても効果なし:ITpro

そもそもupdateやinsertが多いテーブルには負担に…

  • 表領域が解放されないことが多いため、容量圧迫の原因になります。
    • ちゃんと資料を探していませんが、一般的な知識として記載しておきます。