您好,登錄后才能下訂單哦!
這篇文章主要介紹mysql 5.7如何使用sys數據庫下的表查詢數據庫性能狀況,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
1. 誰使用了最多的資源? 基于ip或是用戶?
對于該問題可以從host, user, io三個方面去了解,大概誰的請求最多。對于使用資源問題可以直接從下面四個視圖里有一個
大概的了解。
select * from host_summary limit 1\G;
select * from io_global_by_file_by_bytes limit 1\G;
select * from user_summary limit 1\G;
select * from memory_global_total\G;
注意:內存部分,不包括innodbbuffer pool。只是server 層申請的內存
2. 大部分連接來自哪里及發送的sql情況
查看當前連接情況:
select host, current_connections,statements from host_summary;
查看當前正在執行的sql:
select conn_id, user, current_statement, last_statement from session;
3. 機器執行最多的sql語句是什么樣?
查詢系統里執行最多的top 10 sql:
select * from statement_analysis order byexec_count desc limit 10\G;
4. 哪張表的io最多?哪張表訪問次數最多
select * from io_global_by_file_by_bytes limit 10;
哪張表訪問次數最多,可以參考上面先查詢執行最多的語句,然后查找對應的表,sql如下:
select * from statement_analysis order by exec_count desc limit 10\G;
5. 哪些語句延遲比較嚴重
statement_analysis中avg_latency的最高的,sql語句:
select * from statement_analysis order by avg_latency desc limit 10\G;
6. 哪些sql語句使用了磁盤臨時表
利用statement_analysis 中tmp_tables ,tmp_disk_tables 進行計算,參考sql:
select db, query, tmp_tables,tmp_disk_tables from statement_analysis where tmp_tables>0 or tmp_disk_tables >0
order by(tmp_tables+tmp_disk_tables) desc limit 20;
7. 哪張表占用了最多的buffer pool
查詢在buffer pool中占用前10的表,sql如下:
select * from innodb_buffer_stats_by_tableorder by pages desc limit 10;
8. 每個庫占用多少buffer pool
select * from innodb_buffer_stats_by_schema;
9. 每個連接分配多少內存
利用session表和memory_by_thread_by_current_bytes分配表進行關聯查詢,sql如下:
select b.user, current_count_used,current_allocated, current_avg_alloc, current_max_alloc,total_allocated,
current_statement from memory_by_thread_by_current_bytes a,session b where a.thread_id = b.thd_id;
10. mysql內部現在有多個線程在運行
mysql內部的線程類型及數量:
select user, count(*) from processlistgroup by user;
以上是“mysql 5.7如何使用sys數據庫下的表查詢數據庫性能狀況”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。