LoginSignup
0
0

More than 5 years have passed since last update.

[忘備録]DBのインデックスについて調べた

Posted at

今までなんとなくでやっていたので、
自分で理解できるように調べたことの忘備録です。
後からいろいろ補足等できたらなと。

ツッコミや補足等がありましたらコメントしてください。
お願いします。

Nested Loops

駆動表と内部表

駆動表・・・外側のループの対象となる表
内部表・・・内側でループしている表

駆動表(テーブル) x 内部表(テーブル)
内部表(テーブル) x 駆動表(テーブル)
結合コストは変わらないと思うが「駆動表を小さく」
--> 内部表の結合キーにインデックスが存在している場合、内部表のループをスキップできる

INDEX

INDEXを作成すべきかの基準

カーディナリティが高い + 選択率が低い

カーディナリティ

  • 値のばらつき具合
  • 最も高いのはすべての行において値が異なる(Ex. 一意のキー列)

選択率

  • 特定の列の値を選択したに行を母集合からどの程度絞り込めるか

INDEXによる効果が期待できない

  • 絞り込み条件がない
  • ほとんど絞り込めない
  • ユーザーの入力によって選択率が変化

INDEXが利用できない条件

  • 中間一致(%~%) 、後方一致(%~)の検索
  • 牽引列で演算を行う
  • is Nullを利用している
  • 牽引列に関数を利用している
  • 否定形を使用している
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0