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


MySQL 8.4 參考手冊  /  MySQL Performance Schema  /  Performance Schema 工具命名慣例

29.6 Performance Schema 工具命名慣例

工具名稱由以 '/' 字元分隔的一系列元素組成。範例名稱

wait/io/file/myisam/log
wait/io/file/mysys/charset
wait/lock/table/sql/handler
wait/synch/cond/mysys/COND_alarm
wait/synch/cond/sql/BINLOG::update_cond
wait/synch/mutex/mysys/BITMAP_mutex
wait/synch/mutex/sql/LOCK_delete
wait/synch/rwlock/sql/Query_cache_query::lock
stage/sql/closing tables
stage/sql/Sorting result
statement/com/Execute
statement/com/Query
statement/sql/create_table
statement/sql/lock_tables
errors

工具名稱空間具有樹狀結構。從左到右,工具名稱的元素從較一般到較具體逐步遞進。名稱的元素數量取決於工具的類型。

名稱中給定元素的解譯取決於其左側的元素。例如,myisam 出現在以下兩個名稱中,但第一個名稱中的 myisam 與檔案 I/O 相關,而第二個名稱中的 myisam 與同步工具相關

wait/io/file/myisam/log
wait/synch/cond/myisam/MI_SORT_INFO::cond

工具名稱由 Performance Schema 實作定義的結構化前綴和開發人員實作工具程式碼定義的後綴組成。工具前綴的頂層元素表示工具的類型。此元素還決定 performance_timers 表格中的哪個事件計時器適用於該工具。對於工具名稱的前綴部分,頂層表示工具的類型。

工具名稱的後綴部分來自工具本身的程式碼。後綴可能包含以下層級

  • 主要元素(例如 myisaminnodbmysyssql)的伺服器模組或外掛程式的名稱。

  • 程式碼中變數的名稱,格式為 XXX(全域變數)或 CCC::MMM(類別 CCC 中的成員 MMM)。範例:COND_thread_cacheTHR_LOCK_myisamBINLOG::LOCK_index

頂層工具元素

  • idle:已儀器化的閒置事件。此工具沒有其他元素。

  • error:已儀器化的錯誤事件。此工具沒有其他元素。

  • memory:已儀器化的記憶體事件。

  • stage:已儀器化的階段事件。

  • statement:已儀器化的陳述式事件。

  • transaction:已儀器化的交易事件。此工具沒有其他元素。

  • wait:已儀器化的等候事件。

閒置工具元素

idle 工具用於閒置事件,效能架構會產生這些事件,如第 29.12.3.5 節,「socket_instances 表格」socket_instances.STATE 欄位的說明所述。

錯誤工具元素

error 工具表示是否要收集伺服器錯誤和警告的資訊。此工具預設為啟用。由於不收集計時資訊,因此setup_instruments表格中 error 列的 TIMED 欄位不適用。

記憶體工具元素

記憶體工具預設為啟用。記憶體工具可以在啟動時啟用或停用,或透過更新setup_instruments表格中相關工具的 ENABLED 欄位,在執行時動態啟用或停用。記憶體工具的名稱格式為 memory/code_area/instrument_name,其中 code_area 的值為 sqlmyisam 等,而 instrument_name 則是工具的詳細資訊。

名稱前綴為 memory/performance_schema/ 的工具會顯示效能架構中內部緩衝區配置的記憶體量。memory/performance_schema/ 工具為內建,始終啟用,並且無法在啟動或執行時停用。內建記憶體工具只會顯示在memory_summary_global_by_event_name表格中。如需更多資訊,請參閱第 29.17 節,「效能架構的記憶體配置模型」

階段工具元素

階段工具的名稱格式為 stage/code_area/stage_name,其中 code_area 的值為 sqlmyisam 等,而 stage_name 則表示陳述式處理的階段,例如 Sorting resultSending data。階段對應於 SHOW PROCESSLIST 顯示的執行緒狀態,或是在 Information Schema 的 PROCESSLIST 表格中可見的執行緒狀態。

陳述式工具元素

  • statement/abstract/*:陳述式操作的抽象工具。抽象工具用於陳述式分類的早期階段,在確切的陳述式類型已知之前使用,然後在類型已知時變更為更具體的陳述式工具。有關此過程的說明,請參閱第 29.12.6 節,「效能架構陳述式事件表格」

  • statement/com:已檢測的命令操作。這些名稱對應於 COM_xxx 操作(請參閱 mysql_com.h 標頭檔和 sql/sql_parse.cc)。例如,statement/com/Connectstatement/com/Init DB 工具對應於 COM_CONNECTCOM_INIT_DB 命令。

  • statement/scheduler/event:用於追蹤事件排程器執行的所有事件的單一工具。當排程事件開始執行時,此工具就會開始作用。

  • statement/sp:儲存程式執行的已檢測內部指令。例如,statement/sp/cfetchstatement/sp/freturn 工具用於游標擷取和函數返回指令。

  • statement/sql:已檢測的 SQL 陳述式操作。例如,statement/sql/create_dbstatement/sql/select 工具用於 CREATE DATABASESELECT 陳述式。

執行緒工具元素

已檢測的執行緒會顯示在setup_threads表格中,該表格會顯示執行緒類別名稱和屬性。

執行緒工具以 thread 開頭(例如,thread/sql/parser_servicethread/performance_schema/setup)。

ndbcluster 外掛程式執行緒的執行緒工具名稱以 thread/ndbcluster/ 開頭;如需更多相關資訊,請參閱ndbcluster 外掛程式執行緒

等待工具元素

  • wait/io

    已檢測的 I/O 操作。

    • wait/io/file

      已檢測的檔案 I/O 操作。對於檔案,等待時間是等待檔案操作完成的時間(例如,呼叫 fwrite())。由於快取,磁碟上的實體檔案 I/O 可能不會在此呼叫中發生。

    • wait/io/socket

      已檢測的通訊端操作。通訊端工具的名稱格式為 wait/io/socket/sql/socket_type。伺服器為其支援的每個網路協定都有一個接聽通訊端。與 TCP/IP 或 Unix 通訊端檔案連線的接聽通訊端相關聯的工具,其 socket_type 值分別為 server_tcpip_socketserver_unix_socket。當接聽通訊端偵測到連線時,伺服器會將連線傳輸到由單獨執行緒管理的新通訊端。新連線執行緒的工具,其 socket_type 值為 client_connection

    • wait/io/table

      已檢測的表格 I/O 操作。這些包括對持續性基本表格或暫存表格的資料列層級存取。影響資料列的操作有擷取、插入、更新和刪除。對於檢視表,等待時間與檢視表參考的基本表格相關聯。

      與大多數等待不同,表格 I/O 等待可以包括其他等待。例如,表格 I/O 可能包括檔案 I/O 或記憶體操作。因此,表格 I/O 等待的events_waits_current 通常有兩個資料列。如需更多資訊,請參閱第 29.8 節,「效能架構的原子和分子事件」

      某些資料列操作可能會導致多次表格 I/O 等待。例如,插入操作可能會觸發觸發程序,進而導致更新。

  • wait/lock

    已檢測的鎖定操作。

    • wait/lock/table

      已檢測的表格鎖定操作。

    • wait/lock/metadata/sql/mdl

      已檢測的中繼資料鎖定操作。

  • wait/synch

    已檢測的同步物件。對於同步物件,TIMER_WAIT 時間包括嘗試取得物件鎖定時所封鎖的時間量(如果有的話)。

    • wait/synch/cond

      條件由一個執行緒用來向其他執行緒發出訊號,表示他們正在等待的某個事件已經發生。如果只有一個執行緒正在等待條件,則它可以喚醒並繼續執行。如果有數個執行緒正在等待,則它們都可以喚醒並競爭他們正在等待的資源。

    • wait/synch/mutex

      互斥物件,用於允許存取資源(例如一段可執行程式碼),同時防止其他執行緒存取該資源。

    • wait/synch/prlock

      優先權讀寫鎖鎖定物件。

    • wait/synch/rwlock

      普通的讀/寫鎖物件,用於鎖定特定變數以進行存取,同時防止其他執行緒使用該變數。多個執行緒可以同時取得共用讀取鎖定。一次只能有一個執行緒取得獨佔寫入鎖定。

    • wait/synch/sxlock

      共用獨佔 (SX) 鎖定是一種讀寫鎖鎖定物件,可在允許其他執行緒進行不一致讀取的同時,提供對通用資源的寫入存取。sxlocks 可最佳化並行性,並改善讀寫工作負載的可擴展性。