PG 更新统计信息

http://blog.chinaunix.net/uid-24774106-id-3802225.html

一.vacuum的效果:
  • 1.1释放,再利用 更新/删除的行所占据的磁盘空间.
    第一点的原因是PostgreSQL数据的插入,更新,删除操作并不是真正放到数据库空间.如果不定期释放空间的话,由于数据太多,查询速度会巨降.
  • 1.2更新POSTGRESQL查询计划中使用的统计数据
    第二点的原因是PostgreSQL在做查询处理的时候,为了是查询速度提高,会根据统计数据来确定执行计划.如果不及时更新的话,查询的效果可能不如预期.
  • 1.3防止因事务ID的重置而使非常老的数据丢失。
    第三点的原因是PostgreSQL中每一个事务都会产生一个事务ID,但这个数字是有上限的. 当事务ID达到最大值后,会重新从最小值开始循环.这样如果不及时把以前的数据释放掉的话,原来的老数据会因为事务ID的丢失而丢失掉.
二.哪个表需要做vacuum
SELECT relname, age(relfrozenxid) as xid_age, pg_size_pretty(pg_table_size(oid)) as table_size FROM pg_class WHERE relkind = 'r' and pg_table_size(oid) > 1073741824 ORDER BY age(relfrozenxid) DESC LIMIT 20;
三.查看自动、手动更新vacumm的时间
select schemaname, relname,last_autoanalyze as 上次自动更新时间,last_analyze as 上次手动更新时间 from pg_stat_user_tables;
四.查看具体哪张表的统计信息
select * from pg_stats where tablename='test' and attname='pos';   
# attname是列字段
  • 从库不能执行vacuum
xxxxxx=# vacuum analyze t1;
ERROR:  cannot execute VACUUM during recovery
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jenvid.yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值