В дополнение к хорошему ответу на DBA Stack Exchange , позвольте мне добавить следующее:
Нет необходимости удалять строки каждые пару минут. Скорее вы скрываете их от запросов.
Возьмите этот простой пример:
CREATE TABLE realdata (
id bigint PRIMARY KEY,
payload text,
create_time timestamp with time zone DEFAULT current_timestamp NOT NULL
) PARTITION BY RANGE (create_time);
CREATE VIEW visibledata AS
SELECT * FROM realdata
WHERE create_time > current_timestamp - INTERVAL '2 years';
Представление достаточно простое, чтобы вы могли INSERT
, UPDATE
и DELETE
непосредственно на нем ; нет необходимости в триггерах.
Теперь все данные будут автоматически отклоняться sh от visibledata
через два года.
Иногда вы запускаете задачу очистки, которая просто удаляет все разделы старше двух года.