多事务ID

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

一个多事务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

反馈

请在此提交关于"多事务ID"的任何评论、建议或更正 此处