文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
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