文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 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.4 table_handles 表格

效能架構透過 table_handles 表格公開表格鎖定資訊,以顯示每個開啟的表格控制代碼目前生效的表格鎖定。table_handles 會報告表格鎖定檢測所記錄的內容。此資訊會顯示伺服器已開啟哪些表格控制代碼、它們如何被鎖定,以及由哪些工作階段鎖定。

table_handles 表格是唯讀的,無法更新。預設會自動調整大小;若要設定表格大小,請在伺服器啟動時設定 performance_schema_max_table_handles 系統變數。

表格鎖定檢測使用 wait/lock/table/sql/handler 儀器,預設為啟用。

若要在伺服器啟動時控制表格鎖定檢測狀態,請在您的 my.cnf 檔案中使用類似以下的行

  • 啟用

    [mysqld]
    performance-schema-instrument='wait/lock/table/sql/handler=ON'
  • 停用

    [mysqld]
    performance-schema-instrument='wait/lock/table/sql/handler=OFF'

若要在執行時控制表格鎖定檢測狀態,請更新 setup_instruments 表格

  • 啟用

    UPDATE performance_schema.setup_instruments
    SET ENABLED = 'YES', TIMED = 'YES'
    WHERE NAME = 'wait/lock/table/sql/handler';
  • 停用

    UPDATE performance_schema.setup_instruments
    SET ENABLED = 'NO', TIMED = 'NO'
    WHERE NAME = 'wait/lock/table/sql/handler';

table_handles 表格具有以下欄位

  • OBJECT_TYPE

    由表格控制代碼開啟的表格。

  • OBJECT_SCHEMA

    包含物件的綱要。

  • OBJECT_NAME

    檢測物件的名稱。

  • OBJECT_INSTANCE_BEGIN

    記憶體中的表格控制代碼位址。

  • OWNER_THREAD_ID

    擁有表格控制代碼的執行緒。

  • OWNER_EVENT_ID

    造成表格控制代碼開啟的事件。

  • INTERNAL_LOCK

    在 SQL 層級使用的表格鎖定。值為 READREAD WITH SHARED LOCKSREAD HIGH PRIORITYREAD NO INSERTWRITE ALLOW WRITEWRITE CONCURRENT INSERTWRITE LOW PRIORITYWRITE 其中之一。如需這些鎖定類型的相關資訊,請參閱 include/thr_lock.h 原始程式碼檔案。

  • EXTERNAL_LOCK

    在儲存引擎層級使用的表格鎖定。值為 READ EXTERNALWRITE EXTERNAL 其中之一。

table_handles 表格具有以下索引

  • 主鍵位於 (OBJECT_INSTANCE_BEGIN)

  • 索引位於 (OBJECT_TYPE, OBJECT_SCHEMA, OBJECT_NAME)

  • 索引位於 (OWNER_THREAD_ID, OWNER_EVENT_ID)

不允許對 table_handles 表格執行 TRUNCATE TABLE