• ベストアンサー

INDEXの仕様

PostgreSQL8.1.1(RedHatLinux)にて テーブルのtext列に対してindexを作成しました。 作成した列に対して、LIKE検索を行っております。 しかし、「EXPLAIN」を利用してSQLの実行計画を見たんですが、 「Seq Scan」からしか始まらず、 「Index Scan」という文字が見当たりません。 PostgreSQLにてindexを張った列に対するLIKE検索では、 indexは使用されないのでしょうか?

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

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

マニュアルに「前方一致('abc%'等)でないと、インデクスは使用しない」と明記されています。

参考URL:
http://www.postgresql.jp/document/pg823doc/html/indexes-types.html
susumufire
質問者

お礼

早速のご回答ありがとうございます。 マニュアルに書いてありましたか・・・ 読み落としました。 前方一致ができないとなると、 別の方法を考えたいと思います。

その他の回答 (1)

  • moritan2
  • ベストアンサー率25% (168/670)
回答No.1

likeでどんな検索をされましたか? 'xxx%'ならインデックスが使えるけど、'%xxx'だとできないと思いますよ。

susumufire
質問者

お礼

早速のご回答ありがとうございます。 LIKE検索で中間一致('%hoge%')を使用しております。 前方一致で利用できないとなると、 中間一致でもできそうにないですね。

関連するQ&A