多事务 ID

用于支持多个事务的行锁定标识符

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 内部机制, 事务

另请参阅

mxid_age(), vacuum_multixact_freeze_table_age, autovacuum_multixact_freeze_table_age

反馈

提交对 "Multixact ID" 的任何评论、建议或更正,请在此 进行。