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

kiyoshi.yoshida kiyoshi.yoshida @ mail.toyota-shokki.co.jp
2002年 3月 28日 (木) 15:35:47 JST


MLの皆さま、こんにちは。吉田と申します。
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);

処理時間をもっと速くする方法(SQL文を変更するとか)はないのでしょうか。
(ハードを交換することは今のところ対応できない状況です)

環境は
DebianPotato+PostgerSQL7.2です。

以上、宜しくお願いします。
吉田




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