История изменений
Исправление vadv, (текущая версия) :
DELETE FROM table WHERE ctid IN ( SELECT ctid FROM table LIMIT 1 FOR UPDATE SKIP LOCKED) RETURNING *;
ну for update тоже пишет само по себе в данные :) так что тут удаление еще сильнее по диску бьет. замените на pg_try_xact_advisory и наверное order по индексу.
ну а и да, самое лучшее удаление это транкейт/дроп. так что если удаляете много - то либо партиция, либо через создание таблицы с переименованием.
Исходная версия vadv, :
DELETE FROM table WHERE ctid IN ( SELECT ctid FROM table LIMIT 1 FOR UPDATE SKIP LOCKED) RETURNING *;
ну for update тоже пишет само по себе в данные :) так что тут удаление еще сильнее по диску бьет. замените на pg_try_xact_advisory и наверное order по индексу.