你绝对应该使用自动清理(autovacuum)。
当前是否有任何自动清理进程正在运行?
在这种表上手动执行VACUUM
能成功吗?
设置log_autovacuum_min_duration = 0
以获取关于自动清理处理的日志信息。
如果系统活动过于频繁,自动清理可能无法跟得上。在这种情况下,建议配置自动清理更加积极主动,例如通过设置autovacuum_vacuum_cost_limit = 1000
。
https://www.postgresql.org/docs/current/static/routine-vacuuming.html
PostgreSQL数据库需要定期进行维护,称为vacuuming。对于许多安装而言,让自动清理守护程序(autovacuum daemon)执行vacuuming就足够了,该程序在第24.1.6节中有描述。您可能需要调整那里描述的自动清理参数以获得最佳结果。一些数据库管理员将想要使用手动管理的VACUUM命令来补充或替换守护程序的活动,这些命令通常由cron或Task Scheduler脚本按计划执行。VACUUM
是一次性运行的完美解决方案,而要运行系统,我肯定会依赖于自动清理守护程序。