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

第 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 叢集資料表
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 語句執行的階段(例如剖析或排序)或整個語句或一組語句。事件收集提供對同步呼叫(例如 mutex)、檔案和表格 I/O、表格鎖等伺服器和幾個儲存引擎資訊的存取權。

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

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

  • 目前的事件以及事件歷程記錄和摘要都可使用。這讓您能夠確定執行檢測活動的次數以及所花費的時間。事件資訊可用於顯示特定執行緒的活動,或與特定物件(例如 mutex 或檔案)相關的活動。

  • 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 綱要