[pgsql-jp: 25669] Re: PostgreSQL 7.2.1について

Nakata,Satoru satoru_nakata @ yahoo.co.jp
2002年 4月 23日 (火) 15:44:05 JST


こんにちは。中田@福井です。

Tatsuro Ishikawaさんの
<20020423121405.47C4.ISHIKAWA-T @ comtecc.net>から
>このような テーブルがあった場合、キーワード検索を行う場合
>
>  SELECT code FROM product
>           WHERE maker   like '%キーワード%' OR
>                 name    like '%キーワード%' OR
>                 comment like '%キーワード%' 
>
>とする場合と、
>
>  CREATE VIEW  v_search AS
>     SELECT code, maker || name || comment AS search_key
>
>としてVIEWを作成後
>
>  SELECT code from v_search WHERE searck_key like '%キーワード%'
>
>とした場合 どちらが早いですか(PostgreSQLの内部構造上等で)
>
>VIEWを作成した方が早い気がしますが 間違えでしょうか?

正直、どちらも大差ないと思いますが、強いてあげるなら前者の方
がいいと思います。理由を上げると
1) maker でマッチすれば name , comment の判定が省略できる。
2) 一般に、対象とする文字列が長くなるとマッチングのコストが
増大する。
3) 後者だと、maker='HONDA' name=CR-X' が キーワード'AC'に
マッチするといった問題が発生する。

ちなみに、EXPLAINの結果はどちらも同じでした。
----------------------------------------------------
へへ  中田 聡
のの  mailto:satoru_nakata @ yahoo.co.jphttp://www.geocities.co.jp/SiliconValley/9928/


pgsql-jp メーリングリストの案内