首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 5.5.3 里程碑版發布:Performance Schema 效能監控新紀元

     編輯:MySQL 綜合教學

版本定位

MySQL 5.5 系列第三個里程碑版 (Milestone 3),標誌著 Performance Schema 正式引入,為資料庫效能診斷提供原生、低開銷的儀表板。

核心新功能:Performance Schema

  • 資料庫名: performance_schema
  • 儲存引擎: PERFORMANCE_SCHEMA (記憶體引擎,非持久化)
  • 功能: 收集伺服器運行時事件等待、鎖、階段、語句、交易、記憶體分配等細粒度效能數據
  • 啟用方式: 啟動參數 --performance_schema=ON (預設關閉)

關鍵表結構速覽

表分類代表表用途
設定/啟用控制setup_actors, setup_objects, setup_instruments, setup_consumers決定採集哪些事件、哪些執行緒、哪些物件
當前事件等待events_waits_current即時觀察正在等待什麼 (I/O、鎖、網路)
歷史事件等待events_waits_history, events_waits_history_long最近 N 次等待記錄
語句摘要events_statements_summary_by_digest按 SQL 指紋聚合統計:執行次數、平均延遲、掃描行數
檔案 I/O 摘要file_summary_by_instance每個資料檔/日誌檔的讀寫延遲、位元組數
記憶體摘要memory_summary_global_by_event_name各類記憶體分配統計

實戰查詢範例

-- Top 10 最耗時 SQL (需啟用 statements 消費者)
SELECT DIGEST_TEXT, COUNT_STAR, AVG_TIMER_WAIT/1e12 AS avg_sec, SUM_ROWS_EXAMINED
FROM performance_schema.events_statements_summary_by_digest
ORDER BY AVG_TIMER_WAIT DESC LIMIT 10;

-- 當前阻塞查詢
SELECT r.THREAD_ID, r.EVENT_ID, r.SQL_TEXT, b.BLOCKING_THREAD_ID
FROM performance_schema.events_statements_current r
JOIN performance_schema.events_waits_current b ON r.THREAD_ID = b.THREAD_ID
WHERE b.EVENT_NAME LIKE 'wait/lock/%';

-- 表 I/O 熱點
SELECT FILE_NAME, SUM_NUMBER_OF_BYTES_READ, SUM_NUMBER_OF_BYTES_WRITE
FROM performance_schema.file_summary_by_instance
ORDER BY SUM_NUMBER_OF_BYTES_READ + SUM_NUMBER_OF_BYTES_WRITE DESC LIMIT 20;

對比優勢

維度Performance Schema慢查詢日誌SHOW PROCESSLIST
粒度事件級 (等待/鎖/階段)語句級連線級
開銷極低 (記憶體環狀緩衝)磁碟 I/O鎖競爭高
歷史回溯有限 (配置大小)完整 (保留天數)無
生產適用✅ 建議永久開啟✅ 必開⚠️ 僅診斷時

升級建議

  1. 測試環境驗證 performance_schema 記憶體佔用 (通常 50~200MB)
  2. 生產環境啟用核心消費者:UPDATE setup_consumers SET ENABLED='YES' WHERE NAME LIKE '%statements%' OR NAME LIKE '%waits%';
  3. 結合 sys schema (官方視圖庫) 簡化查詢:SELECT * FROM sys.schema_table_statistics;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved