postgresql 中的真空表

Posted

技术标签:

【中文标题】postgresql 中的真空表【英文标题】:Vacuum tables in postgresql 【发布时间】:2014-11-07 07:44:00 【问题描述】:

使用postgresql-9.2,此时我正在使用以下查询

查找具有dead_tuples
select relname from pg_stat_user_tables where n_dead_tup > 0

这将重新调整表名,然后我将运行

VACUUM VERBOSE ANALYZE <table_name>

这是一个好方法还是我需要改变它,如果是,请给我一些方法

谢谢

【问题讨论】:

自动吸尘器怎么样?它应该默认完成这项工作 【参考方案1】:

根据Documentation

VACUUM 回收死元组占用的存储空间。

但是根据this post

死行是被删除的行,这些行稍后将被重新用于来自 INSERT 或 UPDATE 的新行。一些死行(或保留的可用空间)对于 HOT(仅堆元组)更新特别有用,可以有效地重用同一数据页中的空间

【讨论】:

Some dead rows... 其他人没有。你是在告诉我们不要吸尘吗? @MagnoC 你必须使用真空。没有大数据库的vacuum,将难以存储和管理。最好为 autovacuum 设置正确的设置,它会自行完成。

以上是关于postgresql 中的真空表的主要内容,如果未能解决你的问题,请参考以下文章

红移中的长真空

Postgresql 9.2.1 在独立后端模式下完全真空后无法初始化

PostgreSQ 连接问题 FATAL: no pg_hba.conf entry for host

Postgresq9.6主从部署

PostgreSQL:JOIN SELECT 和 ORDER 隐藏

将 json 对象存储到 postgresql 中的数据类型是啥?