[pgsql-jp: 31990] Re: count が以上に遅い。

T.Suzuki t_suzuki @ kenwood-eng.co.jp
2004年 1月 13日 (火) 14:30:07 JST


鈴木@KEGと申します.

小野昇一 wrote:
> > select count(*) from news_table where message like '%日本%' and flg=1;
> > と検索すると、20秒くらい掛かってしまいます。

SQL文とテーブル構成を拝見して思ったアイディアを1つ.

もし,"flg"が 0 であるレコードが多ければ,

select count(*) from news_table 
  where flg=1 and message like '%日本%';

とする事で,コストがかかるLikeの実行を減らす事はできます.
news_tableの全レコードに対して,flg = 0が締める割合が大きければ
効果があるはずです.

# "[pgsql-jp: 26703] Likeの部分一致で検索" はご覧になりましたか?
http://ml.postgresql.jp/pipermail/pgsql-jp/2002-July/001845.html
# 同じような内容なので,参考になるかと思います.
 -----------------------------------------
      鈴木 徹 (SUZUKI Toru)
      KENWOOD ENGINEERING CORPORATION
      E-mail:t_suzuki @ kenwood-eng.co.jp
 -----------------------------------------



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