这个数据锁定等待
表实现了一个多对多关系,显示了data_locks.
表中的数据锁被哪个表阻止data_locks.
桌子。保持锁定data_locks.
出现在数据锁定等待
只有他们阻止了一些锁请求。
此信息使您能够了解会话之间的数据锁依赖关系。该表不仅公开会话或事务正在等待的锁,而且还公开当前持有该锁的会话或事务。
示例数据锁定等待信息:
mysql>从性能模式中选择*。数据锁等待\G*****************************1.行**************************引擎:INNODB请求引擎锁\u ID:140211201964816:2:2:140211086465800请求引擎事务\u ID:1555请求线程\u ID:47请求事件\u ID:5请求对象\u实例\u开始:140211086465800阻塞\u引擎\u锁\u ID:140211201963888:2:4:2:140211086459880阻塞\u引擎\u事务\u ID:1554阻塞\u线程\u ID:46阻塞\u事件\u ID:12阻塞\u对象\u实例\u开始:140211086459880
与大多数性能架构数据收集不同,没有用于控制数据锁定信息是否被收集的仪器或用于控制数据锁表大小的系统变量。性能模式收集服务器中已有的信息,因此没有内存或CPU开销来生成此信息,或者需要控制其集合的参数。
使用数据锁定等待
表来帮助诊断在高并发负载期间发生的性能问题。为了InnoDB公司
,有关此主题的讨论,请参见第15.15.2节,“InnoDB信息\u模式事务和锁定信息”.
因为数据锁定等待
表与表中的类似data_locks.
表中,这里的列描述是缩写的。有关更详细的列描述,请参见第27.12.13.1节,“数据锁定表”.
这个数据锁定等待
表包含以下列:
发动机
请求锁定的存储引擎。
正在请求\u引擎\u锁\u ID
存储引擎请求的锁的ID。若要获取有关锁的详细信息,请将此列与
发动机锁ID
列data_locks.
桌子。正在请求\u引擎\u事务\u ID
请求锁的事务的存储引擎内部ID。
正在请求线程ID
请求锁的会话的线程ID。
请求\u事件\u ID
在请求锁的会话中导致锁请求的性能架构事件。
请求\对象\实例\开始
请求的锁在内存中的地址。
阻止引擎锁定ID
阻塞锁的ID。若要获取有关锁的详细信息,请将此列与
发动机锁ID
列data_locks.
桌子。阻止\u引擎\u事务\u ID
持有阻塞锁的事务的存储引擎内部ID。
阻塞线程ID
持有阻塞锁的会话的线程ID。
阻止事件ID
在持有它的会话中导致阻塞锁定的性能架构事件。
阻止\对象\实例\开始
内存中阻塞锁的地址。
这个数据锁定等待
表包含以下索引:
索引打开(
正在请求\u引擎\u锁\u ID
,发动机
)索引打开(
阻止引擎锁定ID
,发动机
)索引打开(
正在请求\u引擎\u事务\u ID
,发动机
)索引打开(
阻止\u引擎\u事务\u ID
,发动机
)索引打开(
正在请求线程ID
,请求\u事件\u ID
)索引打开(
阻塞线程ID
,阻止事件ID
)
在MySQL 8.0.1之前,类似于性能模式中的信息数据锁定等待
表格位于INFORMATION\u SCHEMA.INNODB\u LOCK\u等待
表,其中提供有关每个被阻止的InnoDB公司
事务,指示它已请求的锁以及阻止该请求的任何锁。INFORMATION\u SCHEMA.INNODB\u LOCK\u等待
已弃用,从MySQL 8.0.1开始删除。数据锁定等待
应该改用。
这些表在所需的特权方面有所不同:INNODB\锁定\等待
表需要全局过程
特权。这个数据锁定等待
表需要的常规性能架构权限选择
在桌子上选中。
下表显示了从INNODB\锁定\等待
列到数据锁定等待
柱。使用此信息将应用程序从一个表迁移到另一个表。
表27.5从INNODB\u LOCK\u WAITS到data\u LOCK\u WAITS列的映射
INNODB\u LOCK\u WAITS列 | 数据\u锁定\u等待列 |
---|---|
请求\u TRX \u ID |
正在请求\u引擎\u事务\u ID |
请求的\u锁\u ID |
正在请求\u引擎\u锁\u ID |
阻止\u TRX \u ID |
阻止\u引擎\u事务\u ID |
阻止锁定ID |
阻止引擎锁定ID |