当前位置:   article > 正文

pgsql 清理碎片_pgsql有碎片吗

pgsql有碎片吗

查看所有表格的大小

 SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS size
FROM information_schema.tables
ORDER BY
pg_total_relation_size('"' || table_schema || '"."' || table_name || '"') DESC limit 20

  • 1
  • 2
  • 3
  • 4
  • 5

更换命令清理碎片

test表

VACUUM  FULL "test"
  • 1
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]
  • 1
  • 2

参数
FULL
选择"完全"清理,这样可以恢复更多的空间,但是花的时间更多并且在表上施加了排它锁。
FREEZE
选择激进的行"冻结"。指定 FREEZE 相当于执行 VACUUM 时将 vacuum_freeze_min_age 参数设为零。FREEZE 选项将在未来的版本中被取消,并且反对使用,你应当使用设置正确的参数值的方法来达到目的。
VERBOSE
为每个表打印一份详细的清理工作报告
ANALYZE
更新用于优化器的统计信息,以决定执行查询的最有效方法。
table
要清理的表的名称(可以有模式修饰)。缺省时是当前数据库中的所有表。
column
要分析的具体的字段名称。缺省是所有字段。

碰到的问题

查看一个表的大小,显示关系无效

select pg_size_pretty(pg_relation_size('test'));
  • 1

下面这个命令使用后表的大小还是没有变化

VACUUM   "test"
  • 1
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号