文件首頁
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


MySQL 9.0 參考手冊  /  MySQL Performance Schema

第 29 章 MySQL Performance Schema

目錄

29.1 Performance Schema 快速入門
29.2 Performance Schema 建置組態
29.3 Performance Schema 啟動組態
29.4 Performance Schema 執行階段組態
29.4.1 Performance Schema 事件計時
29.4.2 Performance Schema 事件篩選
29.4.3 事件預先篩選
29.4.4 依儀器預先篩選
29.4.5 依物件預先篩選
29.4.6 依執行緒預先篩選
29.4.7 依消費者預先篩選
29.4.8 消費者組態範例
29.4.9 命名儀器或消費者以進行篩選作業
29.4.10 判斷儀器化的內容
29.5 Performance Schema 查詢
29.6 Performance Schema 儀器命名慣例
29.7 Performance Schema 狀態監控
29.8 Performance Schema 原子和分子事件
29.9 Performance Schema 目前和歷史事件表格
29.10 Performance Schema 陳述式摘要與取樣
29.11 Performance Schema 一般表格特性
29.12 Performance Schema 表格描述
29.12.1 Performance Schema 表格參考
29.12.2 Performance Schema 設定表格
29.12.3 Performance Schema 實例表格
29.12.4 Performance Schema 等待事件表格
29.12.5 Performance Schema 階段事件表格
29.12.6 Performance Schema 陳述式事件表格
29.12.7 Performance Schema 交易表格
29.12.8 Performance Schema 連線表格
29.12.9 Performance Schema 連線屬性表格
29.12.10 Performance Schema 使用者定義變數表格
29.12.11 Performance Schema 複製表格
29.12.12 Performance Schema NDB Cluster 表格
29.12.13 Performance Schema 鎖定表格
29.12.14 Performance Schema 系統變數表格
29.12.15 Performance Schema 狀態變數表格
29.12.16 Performance Schema 執行緒集區表格
29.12.17 Performance Schema 防火牆表格
29.12.18 Performance Schema 金鑰環表格
29.12.19 Performance Schema 克隆表格
29.12.20 Performance Schema 摘要表格
29.12.21 Performance Schema 遙測表格
29.12.22 Performance Schema 雜項表格
29.13 Performance Schema 選項和變數參考
29.14 Performance Schema 命令選項
29.15 Performance Schema 系統變數
29.16 Performance Schema 狀態變數
29.17 Performance Schema 記憶體配置模型
29.18 Performance Schema 與外掛程式
29.19 使用 Performance Schema 診斷問題
29.19.1 使用 Performance Schema 進行查詢分析
29.19.2 取得父事件資訊
29.20 Performance Schema 的限制

MySQL Performance Schema 是一個用於在低層級監視 MySQL 伺服器執行的功能。Performance Schema 具有以下特性

  • Performance Schema 提供了一種在執行階段檢查伺服器內部執行情況的方法。它使用 PERFORMANCE_SCHEMA 儲存引擎和 performance_schema 資料庫實作。Performance Schema 主要關注效能資料。這與 INFORMATION_SCHEMA 不同,後者用於檢查中繼資料。

  • Performance Schema 監視伺服器事件。一個 事件是伺服器執行的任何需要時間且已進行儀器化的內容,以便可以收集時間資訊。一般而言,事件可以是函式呼叫、等待作業系統、SQL 陳述式執行階段(例如剖析或排序)或整個陳述式或陳述式群組。事件收集提供了對伺服器和多個儲存引擎的同步呼叫(例如互斥鎖)檔案和表格 I/O、表格鎖定等的資訊存取。

  • Performance Schema 事件與寫入伺服器二進位日誌(描述資料修改)和事件排程器事件(是一種儲存程式)的事件不同。

  • Performance Schema 事件特定於 MySQL 伺服器的特定實例。Performance Schema 表格被認為是伺服器的本地表格,對它們的變更不會被複製或寫入二進位日誌。

  • 目前可以取得事件的相關資訊,包括事件的歷史記錄和摘要。這讓您可以判斷已執行的工具化活動次數以及它們所花費的時間。事件資訊可用於顯示特定執行緒的活動,或與特定物件(例如互斥鎖或檔案)相關的活動。

  • PERFORMANCE_SCHEMA 儲存引擎使用伺服器原始碼中的 檢測點來收集事件資料。

  • 收集到的事件會儲存在 performance_schema 資料庫中的資料表中。這些資料表可以使用 SELECT 陳述式像其他資料表一樣進行查詢。

  • Performance Schema 的組態可以透過 SQL 陳述式更新 performance_schema 資料庫中的資料表來動態修改。組態變更會立即影響資料收集。

  • Performance Schema 中的資料表是記憶體內資料表,不使用持久性的磁碟儲存空間。內容會在伺服器啟動時重新填入,並在伺服器關閉時丟棄。

  • MySQL 支援的所有平台上都可使用監控功能。

    可能會有一些限制:計時器的類型可能因平台而異。適用於儲存引擎的檢測可能無法針對所有儲存引擎實作。每個第三方引擎的檢測由引擎維護者負責。另請參閱 第 29.20 節,「Performance Schema 的限制」

  • 資料收集是透過修改伺服器原始碼以新增檢測來實作。與其他功能(例如複製或事件排程器)不同,Performance Schema 沒有相關聯的獨立執行緒。

Performance Schema 的目的是在對伺服器效能影響最小的情況下,提供對伺服器執行有用資訊的存取。實作遵循以下設計目標

  • 啟動 Performance Schema 不會導致伺服器行為發生任何變更。例如,它不會導致執行緒排程變更,也不會導致查詢執行計畫(如 EXPLAIN 所示)發生變更。

  • 伺服器監控會持續且不顯眼地進行,且開銷非常小。啟動 Performance Schema 不會導致伺服器無法使用。

  • 剖析器不會變更。沒有新的關鍵字或陳述式。

  • 即使 Performance Schema 在內部失敗,伺服器程式碼的執行也會正常進行。

  • 當可以選擇是在初始事件收集期間執行處理,還是在稍後的事件擷取期間執行處理時,優先考慮加快收集速度。這是因為收集正在進行,而擷取是按需進行,而且可能根本不會發生。

  • 大多數 Performance Schema 資料表都有索引,這讓最佳化工具可以存取除了完整資料表掃描之外的執行計畫。如需更多資訊,請參閱 第 10.2.4 節,「最佳化 Performance Schema 查詢」

  • 新增新的檢測點很容易。

  • 檢測是版本化的。如果檢測實作發生變更,先前檢測的程式碼會繼續運作。這有助於第三方外掛程式開發人員,因為不需要升級每個外掛程式來與最新的 Performance Schema 變更保持同步。

注意

MySQL sys 結構描述是一組物件,可方便存取 Performance Schema 收集的資料。sys 結構描述預設為安裝。如需使用說明,請參閱 第 30 章,MySQL sys 結構描述