MySQL數據庫監控指標之執行性能總結
概述
如果你的數據庫運行緩慢,或者出于某種原因無法響應查詢,技術棧中每個依賴數據庫的組件都會遭受性能問題。為了保證數據庫的平穩運行,你可以主動監控與性能及資源利用率相關的指標--查詢執行性能。
查詢性能
MySQL 用戶監控查詢延遲的方式有很多,既可以通過 MySQL 內置的指標,也可以通過查詢性能模式。從 MySQL 5.6.6 版本開始默認啟用,MySQL 的 performance_schema 數據庫中的表格存儲著服務器事件與查詢執行的低水平統計數據。

1、performance_schema
性能模式的 events_statements_summary_by_digest 表格中保存著許多關鍵指標,抓取了與每條標準化語句有關的延遲、錯誤和查詢量信息。
從該表截取的一行樣例顯示,某條語句被執行了18次,平均執行用時為 2.5 毫秒(所有計時器的測量值都以微微秒為單位)

按按模式計算以微秒為單位的平均運行時間:
- SELECT schema_name
- , SUM(count_star) count
- , ROUND( (SUM(sum_timer_wait) / SUM(count_star))
- / 1000000) AS avg_microsec FROM performance_schema.events_statements_summary_by_digest
- WHERE schema_name IS NOT NULL
- GROUP BY schema_name;

按模式計算出現錯誤的語句總數:
- SELECT schema_name
- , SUM(sum_errors) err_count
- FROM performance_schema.events_statements_summary_by_digest
- WHERE schema_name IS NOT NULL
- GROUP BY schema_name;

2、sys模式
對于特別查詢或調查,使用 MySQL 的 sys 模式通常更為簡單。sys 模式以人們更易讀的格式提供了一個有條理的指標集合,使得對應的查詢更加簡單。
2.1、查找最慢的語句(運行時間在 95 名開外):
- SELECT * FROM sys.statements_with_runtimes_in_95th_percentile;

2.2、查看哪些標準化語句出現了錯誤:
- SELECT * FROM sys.statements_with_errors_or_warnings;

3、慢查詢
除了性能模式與 sys 模式中豐富的性能數據,MySQL 還提供了一個 Slow_queries 計數器,每當查詢的執行時間超過 long_query_time 參數指定的值之后,該計數器就會增加。默認情況下,該臨界值設置為 10 秒。
- SHOW VARIABLES LIKE 'long_query_time';

覺得有用的朋友多幫忙轉發哦!后面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注下~