本节介绍性能架构暴露的锁定信息data_locks.
和data_lock_waits.
桌子,哪个取代了Information_Schema.
Innodb_locks.
和Innodb_lock_waits.
MySQL 8.0中的表。有关较旧的类似讨论Information_Schema.
表,参见InnoDB Information_Schema交易和锁定信息, 在MySQL 5.7参考手册。
一Information_Schema.
表和两个性能模式表使您可以监控Innodb.
交易与诊断潜在锁定问题:
Innodb_trx.
: 这Information_Schema.
表提供有关当前正在执行的每笔交易的信息Innodb.
,包括事务状态(例如,当事务启动时,当事务开始时,事务执行的特定SQL语句。data_locks.
:此性能模式表包含每个保持锁定的行和每个锁定请求,该请求被阻止等待释放保持锁:每个保持锁都有一行,无论是否包含锁的事务状态如何(
innodb_trx.trx_state.
是跑步
那锁等待
那滚回来
或者承诺
)。InnoDB中的每个事务都在等待另一个交易释放锁(
innodb_trx.trx_state.
是锁等待
)通过恰好阻塞请求被封锁。阻塞锁定请求是用于行或表锁,在不兼容的模式下被另一事务保持。锁定请求始终具有与阻止请求的保持锁的模式不兼容的模式(读取与写入,共享与共享)。被阻止的事务直到其他交易提交或滚动,从而释放所请求的锁定。对于每个被封锁的交易,
data_locks.
包含一行,该行描述了事务所请求的每个锁定,并且它正在等待。
data_lock_waits.
:此性能模式表指示哪个事务正在等待给定锁定,或者锁定给定交易等待的交易。此表包含每个阻塞事务的一个或多个行,指示它已请求的锁定以及阻止该请求的任何锁。这请求_engine_lock_id.
值是指事务请求的锁,以及blocking_engine_lock_id.
值是指阻止第一事务的锁定(由另一个事务保持)。对于任何给定的被封锁的交易,所有行都在data_lock_waits.
具有相同的价值请求_engine_lock_id.
和不同的值blocking_engine_lock_id.
。
有关前面表的更多信息,请参阅第26.4.30节“Information_schema Innodb_trx表”那第27.12.13.1节“data_locks表”, 和第27.12.13.2节“data_lock_waits表”。