Re: need much better query perfomance
От | Tom Lane |
---|---|
Тема | Re: need much better query perfomance |
Дата | |
Msg-id | 20472.1043824456@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | need much better query perfomance (andy@mixonic.com (Andy)) |
Ответы |
Re: need much better query perfomance
|
Список | pgsql-general |
andy@mixonic.com (Andy) writes: > select track_id from track where track_id not in ( > select at.track_id from album_track at, album alb > where at.album_id = alb.album_id and alb.deleted is null > ) > The above query should work, but it takes too long to execute. The performance of NOT IN pretty much sucks :-(. (7.4 will be better, but that doesn't help you today.) I'd suggest rewriting to avoid that. Perhaps CREATE TEMP TABLE keepers AS select at.track_id from album_track at, album alb where at.album_id = alb.album_id and alb.deleted is null; CREATE TEMP TABLE zappers AS SELECT track_id FROM track EXCEPT SELECT track_id FROM keepers; DELETE FROM track WHERE track_id = zappers.track_id; Untested, use at your own risk, etc. regards, tom lane
В списке pgsql-general по дате отправления: