PostgreSQL Freeze 风暴预测续 - 珍藏级SQL

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

PostgreSQL Freeze 风暴预测续 - 珍藏级SQL

德哥 2018-05-06 09:05:24 浏览1658
展开阅读全文

标签

PostgreSQL , Freeze , 风暴


背景

PostgreSQL 目前默认的存储引擎,事务可见性需要依赖行头的事务号,因为事务号是32位的,会循环使用。

在一条记录产生后,如果再次经历了20亿个事务,必须对其进行freeze,否则数据库会认为这条记录是未来事务产生的(可见性判断)。

因此FREEZE操作是数据库在32位事务号的情况下,经常要做的。

对全表进行FREEZE操作时,会扫描整表,将大于指定阈值least(autovacuum_freeze_min_age, 表级参数vacuum_freeze_min_age)年龄的记录设置为freeze。可能导致大量的读IO,写IO(主要是写数据文件,WAL日志, full page write WAL)。

一些参数决定数据库在什么时候触发FREEZE,以及触发FREEZE时,冻结哪

网友评论

登录后评论
0/500
评论
德哥
+ 关注
所属云栖号: 阿里云数据库ApsaraDB