こんにちは
インデックスがどのように使われているかは、ご自身で WordPress で発行されている SQL を確認されたら良いと思います。
発行されている SQL の確認方法は以下にあります。
WordPressでのデバッグ SAVEQUERIES
また、重複値が無いカラムにインデックスが必要無いとお考えなのであれば、カラムに対するインデックスの必要性を質問される前にインデックス自体について勉強される必要があると思います。
以下は MySQL のリファレンスですが、参考書などいろいろ出ていると思います。
https://dev.mysql.com/doc/refman/5.6/ja/optimization-indexes.html
ご回答どうもありがとうございます。
いくつかの記事を拝読しているのですが
重複値が無いカラムにインデックスが必要無い
について、そうとは限らないというご主張がどうしても理解できません。
たとえばこの図(https://imgur.com/1HqVPXf)では、IDX_TITLE
というインデックスが作成され、以下4つのグループに分かれています。
・Assitant Engineer
・Engineer
・Senior Engineer
・Staff
ここから図の例のように0004
と0010
を探すならばフルスキャンよりも早くなるだろうというのは理解できます。
しかし早くなる理由は、この4つが重複値であるからだとしか考えられないのです。
だからこそグループにわけられ、グループからスキャンするからこそフルスキャンより早いのだろう、という考えです。
仮に重複値がなく、レコードID
とTITLE
が全て一対一であった場合はどうでしょうか。
同じように0004
と0010
を探すならば、IDX_TITLE
も10件ですし、フルスキャンも10件ですから、IDX_TITLE
が早くなる理由がわかりません。
つまり
重複値が無いカラムにインデックスが必要無い
ということになるのだと結論してしまいます。
これについて何が間違っているのか教えて頂けませんでしょうか。
重複値が無いカラムにインデックスが必要無い
のであれば、プライマリキーに指定して生成されるインデックスなどは不要なのに RDBMS が勝手に余計なものをつけているということになりますね。
ユニークインデックス制約などはもう、その言葉自体が自己矛盾になってしまいます。
グループにわけられ、グループからスキャンするからこそフルスキャンより早い
というのは誤った理解です。
そのような情報はどこに書いてあったのですか?
インデックスがなぜ早いかなどという RDBMS のほとんどで共通の機能については検索すればいくらでも見つけることができます。
繰り返しになりますがインデックスについて勉強してみることをおすすめします。
また、ここは WordPress のフォーラムですので、データベース自体の機能についてはそのような話題を扱っているところでご質問いただけますでしょうか。
たしかにWordPressと関係のない話に逸れてしまいました。失礼致しました。ご回答どうもありがとうございました。
わかりました。先ほどの図のIDX_TITLE
は、グループに分かれているのではなくて、昇順に並んでいるのですね。
✕グループに分かれたものから探すから早い
〇昇順に並んだものから探すから早い
でしたか。
ありがとうございました。