ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.2790524 INDEXの仕様
質問者:susumufire PostgreSQL8.1.1(RedHatLinux)にて
テーブルのtext列に対してindexを作成しました。
作成した列に対して、LIKE検索を行っております。

しかし、「EXPLAIN」を利用してSQLの実行計画を見たんですが、
「Seq Scan」からしか始まらず、
「Index Scan」という文字が見当たりません。

PostgreSQLにてindexを張った列に対するLIKE検索では、
indexは使用されないのでしょうか?
困り度:
  • すぐに回答を!
質問投稿日時:
07/02/28 10:39
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 マニュアルに「前方一致('abc%'等)でないと、インデクスは使用しない」と明記されています。
回答者:chukenkenkou
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
07/02/28 11:18
参考URL: http://www.postgresql.jp/document/pg823doc/html/indexes-types.html
この回答へのお礼早速のご回答ありがとうございます。

マニュアルに書いてありましたか・・・
読み落としました。

前方一致ができないとなると、
別の方法を考えたいと思います。

回答良回答10pt

ANo.1 likeでどんな検索をされましたか?
'xxx%'ならインデックスが使えるけど、'%xxx'だとできないと思いますよ。
回答者:moritan2
種類:回答
どんな人:経験者
自信:自信あり
回答日時:
07/02/28 10:46
この回答へのお礼早速のご回答ありがとうございます。
LIKE検索で中間一致('%hoge%')を使用しております。

前方一致で利用できないとなると、
中間一致でもできそうにないですね。