[pgsql-jp: 29055] Re: Like を使った前方一致検索時のインデックス使用条件について
Hajime Lucky Okada
paraiso @ luckyo.8m.com
2003年 2月 14日 (金) 14:39:50 JST
岡田です。
自己レスなんですが、これまたすごい結果が出ました (^o^)
DB クラスタ自体を次の様に作り直し、その他は全く同じ手法で検証してみました。
initdb -E EUC_JP --no-locale
この後、ダンプしてあったデータを元に戻して(== table 構造 全く同一)、
定量的な検査を実行してみました。
xxxdb=> \timing
Timing is on.
xxxdb=> explain select plan_id, kenmei from kenmei where mitumori LIKE 'SI%';
QUERY PLAN
------------------------------------------------------------------------------------------------
Index Scan using idx1_plan on kenmei (cost=0.00..193.85 rows=52 width=466)
Index Cond: ((mitumori >= 'SI'::character varying) AND (mitumori < 'SJ'::character varying))
Filter: (mitumori ~~ 'SI%'::text)
(3 rows)
Time: 15.37 ms
xxxdb=>
前と全く同じやり方ですが、今回はきちんとインデックスを利用してくれ、
時間も以前 速い!と言っていたよりも更に 6 倍強 速くなっていますね。
cost も安くなってます (^^;;
--no-locale オプションがここまで重要とは知らなかったのですが、
ダンプ → initdb → restore 「だけ」の修正なので、これで様子を
見てみようと思います。
みなさん、ありがとうございました。
もし、コメントありましたら宜しくお願い致します。
岡田はじめ
Hajime Lucky Okada wrote:
>
> 2.--no-locale の件
> Release Note? これもどの種類か忘れましたが、./configure する際にも
> 指定すべき、という記述を目にしたことがあります。 過去ログにもあったので
> 今回 投稿する際、この記述を入れるべきかどうか迷ってました。
> で、現状は確かに configure 時にも initdb 時にも指定してはいませんでした。
>
> ビルドし直しというのはちょっと負荷が重いので、initdb からでも良いというので
> あれば、一度 早急に試してみたいと思います。
pgsql-jp メーリングリストの案内