• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前方一致が動的に変更される場合にINDEXは有効になりません。)

LIKE検索におけるINDEXの有効化について

このQ&Aのポイント
  • テーブル同士のLIKE検索(前方一致)を行った場合、INDEXが有効になりません。
  • LIKE検索文字列を固定にした場合は、INDEXが有効になります。
  • テーブル同士のLIKE(前方一致)でINDEXを有効にする手段をご教授頂けないでしょうか。

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

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

私も、以前同じ現象になって調べました。 PostgreSQLでは、like検索には通常のindexは使われないようです。 versionは、8.0.xでした。 likeを使うようにインデックスを作成するにはvarchar_pattern_opsオプションを付けます。 <code> CREATE INDEX test_index ON test_table (col varchar_pattern_ops); </code> 詳しくは参考URLを見てみてください。

参考URL:
http://www.postgresql.jp/document/pg803doc/html/indexes-opclass.html
yamataro25
質問者

お礼

DQ9さん お世話になりました。 明確な回答有難うございます。 インデックスを再作成し再度実行してみます。

yamataro25
質問者

補足

DQさん お世話になります。 以下のインデックスを作成し実行しましたが インデックスが使われませんでした。 ほかに考慮点ございましたらご教授頂けると 幸いです。 以下、インデックス作成 create index i_test ON t_update (sys_id varchar_pattern_ops); create index i_test2 ON wk_dss_data (sys_id varchar_pattern_ops);

その他の回答 (1)

noname#18558
noname#18558
回答No.2

私はこれで解決できたのですが、別の問題なのでしょうか。 あとはPostgreSQLのオプティマイザですね。 Alanizeオプションをつけてvacuumを実行してみてはどうでしょうか。

参考URL:
http://www.postgresql.jp/document/pg732doc/reference/sql-vacuum.html