一个多事务ID
是一个内部标识符,用于支持多事务的行锁定。
多事务ID
是在事务使用"SELECT … FOR UPDATE
"(或以下锁定模式之一:SHARE、KEY SHARE、NO KEY UPDATE)来锁定和更新元组时创建的。
多事务ID
位于pg_multixact
目录中。
示例
显示多事务ID使用情况
SELECT relname, relminmxid, $NextMultiXactId - relminmxid::TEXT::BIGINT AS age FROM pg_class WHERE relminmxid::TEXT::BIGINT <> 0 ORDER BY relminmxid::TEXT::BIGINT ASC LIMIT 10;
其中$NextMultiXactId
是以下语句返回的值:
SELECT next_multixact_id FROM pg_control_checkpoint()
(对于PostgreSQL 9.5及更早版本,请使用pg_controldata输出中"Latest checkpoint's NextMultiXactId
"的值)。
参考文献
- PostgreSQL文档: 多事务和回绕
分类
参见
mxid_age(),vacuum_multixact_freeze_table_age,autovacuum_multixact_freeze_table_age