我正在使用大量TEMP TABLES
并希望确保不会泄漏存储空间。
我在事务中创建并使用该表CREATE TEMP TABLE mytable ... ON COMMIT DROP
。
我无法理解的文档CREATE TEMPORARY TABLE
。它指出:
autovacuum 守护进程无法访问,因此无法清理或分析临时表。因此,应通过会话 SQL 命令执行适当的清理和分析操作。
会ON COMMIT DROP
回收空间还是我需要实际运行VACUUM mytable
?
如果我确实需要运行VACUUM
,那么我不确定如何运行,因为临时表在事务结束后不可用。
无论如何,临时表都会在会话结束时完全删除。(或者在当前事务结束时已经有了
ON COMMIT DROP
。)autovacuum
守护进程(或就此VACUUM
而言,手册)不参与其中。由于临时表像常规表一样在系统目录中注册,因此删除它们会留下一些(非常小!)死元组,
autovacuum
最终由 清理。如果您想将其算作对存储的影响。有关的: