多事务 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”的评论、建议或更正 此处.