• ベストアンサー

データベースのインデックスについて教えてください(複合インデックス)

インデックスについて教えてください。 データベースの項目にFirstNameとLastNameがあり、 AND検索のためにFirstNameとLastNameに複合インデックスを 設定しました。 でもFirstNameとLastNameのそれぞれ単独でも検索を するような場合、FirstNameとLastNameの複合インデックスに 併せて、それぞれ単独のインデックスを作成する必要が あるものでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

検索と言っているのは、「=」条件やlikeの前方一致など、インデクスを有効利用できる検索ですか? それとも、「C1 like '%xxx%'」といった検索もあるのですか? 母体データ件数は、1万件以上くらいはあるのでしょうか? 母体件数が数千件以下程度と少なければ、インデクスを付ける効果は少なくなります。 >FirstNameとLastNameに複合インデックスを設定しました インデクスを構成する先頭列は、LastNameではないのですか? 普通、FirstNameでの検索より、LastName単独またはLastName+FirstNameでの検索が多いと思いますが? インデクスを有効利用できる検索条件を指定することが前提ですが、(LastName+FirstName)でインデクスを付ければ、LastNameだけの条件でもインデクスを活用できます。 ある程度の母体データ量があり、インデクスを有効利用できるFirstNameだけでの検索もあるなら、FirstNameにもインデクスを付けた方がいいでしょう。

nihon_no_samurai
質問者

お礼

ありがとうございます!