Multixact ID 是一个内部标识符,用于支持多个事务的行锁定。
Multixact ID 是在事务使用 "SELECT … FOR UPDATE"(或 SHARE、KEY SHARE、NO KEY UPDATE 等锁定模式)来锁定和更新元组时创建的。
Multixact ID 存储在 pg_multixact 目录中。
示例
显示 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 文档: Multixacts and Wraparound
分类
另请参阅
mxid_age(), vacuum_multixact_freeze_table_age, autovacuum_multixact_freeze_table_age
