[pgsql-jp: 25459] Re: deleteにすごく時間がかかる現象について

Tsuru.E tsuru @ oita.hht.co.jp
2002年 3月 28日 (木) 17:34:31 JST


こんにちは、つるつると申します。

ご存じかもしれませんが、下記のURLに「IN」を使った副問い合わせは
遅いので、「EXISTS」を使いましょうとの記述があります。
可能でしたら、一度お試しになられては如何でしょうか。

http://www.linux.or.jp/JF/JFdocs/PostgreSQL-FAQ.html
>4.23) なぜ、INを使う副問い合わせがとても遅いのですか?

#試した結果どのくらい早くなったか解りましたら結果をアップして頂けると
  助かります。
  根本的に外している場合は、ごめんなさいです。


-----Original Message-----
create table history(mykey serial primary key,
	time timestamp default current_timestamp, msg text);
上記のテーブルで、20万件ほどの行を削除しようとすると処理時間に2,3時間か
かってしまいます。
実現したいことは、このテーブルから20万件を超える行はtimeソート順に古い物
から削除したい、ということです。(表現がつたなくて申し訳ありません)
そのためのSQL文は、以下のように実施してみました。
SQL文:
delete from history where mykey in(select mykey from history order by
time desc offset 200000);




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