【データベース】インデックスについて
SQLにインデックスという機能があり、SQLチューニングには欠かせない機能です。
辞書の目次みたいなもので検索を早くします。
ですが やみくもに作れば良いと
いうわけではありません。
インデックスを作成する列として適不適を判断するための
最も重要な情報はカーディナリティです。
特定の列の値が、どれくらいの種類の多さを持つかという意味です。
簡単な例を出します。
「性別」の場合 男と女がという2種類の値があります。
この列が10万行あったとしても 男と女の2種類しかないわけで
この場合 カーディナリティが低いと言えます。
しかし、電話番号ならどうでしょうか?
こちらは複数の種類がありますよね
電話番号は絶対に被らないので10万行あったら
カーディナリティが高いと言えます。
このようにインデックスを作成する際はこうした
カーディナリティが高い列を選ぶことが基本です。
ただし、値が偏らず、平均的に分散していることがベストです。