暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
PostgreSQL处理膨胀与事务回卷.pdf
119
4页
1次
2024-04-30
10墨值下载
PostgreSQL处理膨胀与事务回卷
一、表膨胀查询与处理
1、创建扩展
create extension pgstattuple;
2、表膨胀查询
如下查询出来表的怕膨胀系数为81%
select *, 1.0 - tuple_len::numeric table_len as bloat from pgstattuple('tab_brin1');
占用2414page
select * from pg_relpages('tab_brin1');
3、表膨胀处理
vacuum (verbose,full,analyze) tab_brin1;
Vacuum
它将进行普通的垃圾收集,将垃圾空间标识为可用的状态。它不会影响其它事务发出的表上的读操作和
写操作,因为普通的垃圾收集不会在表上加一个互斥锁。
VacuumFull
启动完全垃圾收集,完全垃圾收集会在表上加一个互斥锁,对表进行垃圾回收期间,其它的事务不能对
表进行读操作和写操作。VACUUMFULLVACUUM的执行时间要长一些,执行的操作也多一些,它在
进行垃圾收集的过程中,可能会将一个记录从一个数据块转移到另一个数据块。
Vacuumanalyze
除了回收垃圾空间还收集优化器统计数据
Vacuumverbose
输出垃圾收集的详细数据。
回收完后,膨胀系数降到3%
select *, 1.0 - tuple_len::numeric table_len as bloat from pgstattuple('tab_brin1');
表占用473page
select * from pg_relpages('tab_brin1');
二、数据库防止事务回卷
Vacuum Freeze
为了保证同一个数据库中的最新和最旧的两个事务之间的年龄不超过2^31postgresql引入了冻结
(freeze)功能。
涉及到的术语:
1、表年龄:当前事务号距上一次执行freeze操作的事务id的差值
2、元组年龄:当前元组的xmin距上一次执行freeze操作的事务id的差值
如果发生当新老事务id差超过21亿的时候,事务号会发生回卷,此时数据库会报出如下错误并且拒绝接
受所有连接,必须进入单用户模式执行vacuumfreeze操作。
事务冻结操作:
vacuum freeze tab_brin1;
of 4
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜