• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • data_lock_waits表

    data_lock_waits表实现了多对多关系,该关系显示了data_locks表中的哪些数据锁定请求被表中的哪些保留数据锁定阻止data_locks。持有的锁定只有在阻止某些锁定请求时data_locks才会出现data_lock_waits

    此信息使您能够了解会话之间的数据锁依赖性。该表不仅公开了会话或事务正在等待哪个锁,而且还公开了当前拥有该锁的会话或事务。

    示例数据锁定等待信息:

    mysql> SELECT * FROM performance_schema.data_lock_waits\G
    *************************** 1. row***************************
                              ENGINE: INNODB
           REQUESTING_ENGINE_LOCK_ID: 140211201964816:2:4:2:140211086465800
    REQUESTING_ENGINE_TRANSACTION_ID: 1555
                REQUESTING_THREAD_ID: 47
                 REQUESTING_EVENT_ID: 5
    REQUESTING_OBJECT_INSTANCE_BEGIN: 140211086465800
             BLOCKING_ENGINE_LOCK_ID: 140211201963888:2:4:2:140211086459880
      BLOCKING_ENGINE_TRANSACTION_ID: 1554
                  BLOCKING_THREAD_ID: 46
                   BLOCKING_EVENT_ID: 12
      BLOCKING_OBJECT_INSTANCE_BEGIN: 140211086459880
    

    与大多数Performance Schema数据收集不同,没有用于控制是否收集数据锁定信息或用于控制数据锁定表大小的系统变量的工具。性能架构收集服务器中已经可用的信息,因此没有内存或CPU开销来生成此信息,也不需要控制其收集的参数。

    使用该data_lock_waits表可帮助诊断在高并行负载下发生的性能问题。对于InnoDB,请参见“ InnoDB INFORMATION_SCHEMA事务和锁定信息”中有关此主题的讨论。

    由于表中的列与data_lock_waits表中的列相似data_locks,因此此处的列描述被缩写。有关更详细的列描述,请参见“ data_locks表”。

    data_lock_waits表包含以下列:

    • ENGINE

      请求锁定的存储引擎。

    • REQUESTING_ENGINE_LOCK_ID

      存储引擎请求的锁的ID。要获取有关锁的详细信息,请将此列与表的ENGINE_LOCK_ID列连接在一起data_locks

    • REQUESTING_ENGINE_TRANSACTION_ID

      请求锁定的事务的存储引擎内部ID。

    • REQUESTING_THREAD_ID

      请求锁定的会话的线程ID。

    • REQUESTING_EVENT_ID

      在请求锁定的会话中导致锁定请求的Performance Schema事件。

    • REQUESTING_OBJECT_INSTANCE_BEGIN

      请求的锁在内存中的地址。

    • BLOCKING_ENGINE_LOCK_ID

      阻止锁的ID。要获取有关锁的详细信息,请将此列与表的ENGINE_LOCK_ID列连接在一起data_locks

    • BLOCKING_ENGINE_TRANSACTION_ID

      拥有阻止锁的事务的存储引擎内部标识。

    • BLOCKING_THREAD_ID

      拥有阻止锁的会话的线程ID。

    • BLOCKING_EVENT_ID

      在持有该锁的会话中导致阻塞锁的Performance Schema事件。

    • BLOCKING_OBJECT_INSTANCE_BEGIN

      阻塞锁在内存中的地址。

    data_lock_waits表具有以下索引:

    • 在(REQUESTING_ENGINE_LOCK_IDENGINE)上的索引
    • 在(BLOCKING_ENGINE_LOCK_IDENGINE)上的索引
    • 在(REQUESTING_ENGINE_TRANSACTION_IDENGINE)上的索引
    • 在(BLOCKING_ENGINE_TRANSACTION_IDENGINE)上的索引
    • 在(REQUESTING_THREAD_IDREQUESTING_EVENT_ID)上的索引
    • 在(BLOCKING_THREAD_IDBLOCKING_EVENT_ID)上的索引

    TRUNCATE TABLE不允许用于该data_lock_waits表。

    上篇:data_locks表

    下篇:metadata_locks表