Postgres 是否有任何功能来支持老化的旧记录?
我想使用 Postgres 进行日志记录,作为一种队列,其中超过两周的记录(日志事件)会被自动删除。
所以这是永远挂起的查询:
ALTER TABLE tasks
ADD COLUMN in_progress BOOLEAN NOT NULL DEFAULT FALSE;
Run Code Online (Sandbox Code Playgroud)
该表tasks少于 20,000 行,每 5 分钟左右查询一次。
我检查了pg_stat_activity大约 10 次,但从未显示任何锁定表的查询:
SELECT *
FROM pg_stat_activity
WHERE query LIKE '%tasks%';
--- No results
Run Code Online (Sandbox Code Playgroud)
我尝试了真空吸尘器,但没有帮助:
VACUUM (VERBOSE, ANALYZE) tasks;
Run Code Online (Sandbox Code Playgroud)
我还尝试添加没有约束和默认值的列,我希望在这样的表上几乎是即时的,但是当我停止查询时,查询已经运行了 1 分钟:
ALTER TABLE tasks
ADD COLUMN in_progress BOOLEAN;
Run Code Online (Sandbox Code Playgroud)
我在同一时间段内对另一个表(约 1000 行)运行了查询,结果是即时的。
任何想法?
PostgreSQL 11.13
通过 DBeaver 执行的查询(为了以防万一,我多次无效/重新连接)。