文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


29.12.13.2 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 資料收集不同,沒有任何工具可控制是否收集資料鎖定資訊,也沒有任何系統變數可控制資料鎖定表格大小。Performance Schema 會收集伺服器中已有的資訊,因此產生此資訊不需要任何記憶體或 CPU 額外負荷,也不需要控制其收集的參數。

使用 data_lock_waits 表格可協助診斷在同時高負載期間發生的效能問題。對於 InnoDB,請參閱第 17.15.2 節「InnoDB INFORMATION_SCHEMA 交易和鎖定資訊」中的相關討論。

由於 data_lock_waits 表格中的欄位與 data_locks 表格中的欄位類似,因此此處的欄位描述已縮短。如需更詳細的欄位描述,請參閱第 29.12.13.1 節「data_locks 表格」

data_lock_waits 表格具有下列欄位

  • ENGINE

    要求鎖定的儲存引擎。

  • REQUESTING_ENGINE_LOCK_ID

    儲存引擎所要求鎖定的 ID。若要取得鎖定的詳細資料,請將此欄位與 data_locks 表格的 ENGINE_LOCK_ID 欄位聯結。

  • REQUESTING_ENGINE_TRANSACTION_ID

    要求鎖定的交易的儲存引擎內部 ID。

  • REQUESTING_THREAD_ID

    要求鎖定的工作階段的執行緒 ID。

  • REQUESTING_EVENT_ID

    在要求鎖定的工作階段中造成鎖定請求的 Performance Schema 事件。

  • REQUESTING_OBJECT_INSTANCE_BEGIN

    要求鎖定的記憶體位址。

  • BLOCKING_ENGINE_LOCK_ID

    封鎖鎖定的 ID。若要取得鎖定的詳細資料,請將此欄位與 data_locks 表格的 ENGINE_LOCK_ID 欄位聯結。

  • BLOCKING_ENGINE_TRANSACTION_ID

    持有封鎖鎖定的交易的儲存引擎內部 ID。

  • BLOCKING_THREAD_ID

    持有封鎖鎖定的工作階段的執行緒 ID。

  • BLOCKING_EVENT_ID

    導致持有鎖定的工作階段中發生阻塞鎖的 Performance Schema 事件。

  • BLOCKING_OBJECT_INSTANCE_BEGIN

    阻塞鎖在記憶體中的位址。

data_lock_waits 資料表具有以下索引

  • 索引於 (REQUESTING_ENGINE_LOCK_ID, ENGINE)

  • 索引於 (BLOCKING_ENGINE_LOCK_ID, ENGINE)

  • 索引於 (REQUESTING_ENGINE_TRANSACTION_ID, ENGINE)

  • 索引於 (BLOCKING_ENGINE_TRANSACTION_ID, ENGINE)

  • 索引於 (REQUESTING_THREAD_ID, REQUESTING_EVENT_ID)

  • 索引於 (BLOCKING_THREAD_ID, BLOCKING_EVENT_ID)

不允許對 data_lock_waits 資料表使用 TRUNCATE TABLE 指令。