您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么獲取有性能問題的sql”,在日常操作中,相信很多人在怎么獲取有性能問題的sql問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么獲取有性能問題的sql”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
用戶反饋:獲取存在性能問題的sql
慢查詢日志:獲取存在性能問題的sql
實時獲取存在性能的sql
使用慢查詢日志獲取有性能問題的sql
slow_query_log 啟動停止記錄慢查詢日志
slow_query_log_file 指定慢查詢日志的存儲路徑以及文件
long_query_time 指定記錄慢查詢日志sql執行時間的閾值
log_queries_not_using_indexes 是否記錄未使用的索引的sql
1:用戶信息以及線程id
2:執行查詢時間
3:鎖的時間
4、返回數據行數
5、掃描數據的行數
6、執行sql時間
7、執行的sql
常用慢查詢日志分析工具 mysqldumpslow
常用慢查詢分析工具 pt-query-digest
pt-query-digest \
--explain h=127.0.0.1, u=root,p=p@ssW0rd \ slow-mysql.log
實時查詢
查詢處理各個階段所消耗的時間
使用profile
1、set profiling = 1 ;
執行查詢
啟動profile
這是一個session級的配置
2、show profiles;
查看每一個查詢所消耗的總時間的信息
mysql> show profiles;
+----------+------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| 1 | 0.00012525 | sel
select count(*) from temp_shop_user |
| 2 | 0.09744925 | select count(*) from temp_shop_user
3、show profiles for query N;
查詢的每個階段所消耗的時間
mysql> show profile for query 1 ;
+--------------------+----------+
| Status | Duration |
+--------------------+----------+
| starting | 2.5E-5 |
| freeing items | 9.6E-5 |
| logging slow query | 3E-6 |
| cleaning up | 2E-6 |
+--------------------+----------+
4 rows in set
4、查詢cpu信息
mysql> show profile cpu for query 3;
+----------------------+----------+----------+------------+
| Status | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| starting | 3.5E-5 | 0 | 0 |
| checking permissions | 6E-6 | 0 | 0 |
| Opening tables | 1.3E-5 | 0 | 0 |
| System lock | 6E-6 | 0 | 0 |
| init | 8E-6 | 0 | 0 |
| optimizing | 3E-6 | 0 | 0 |
| statistics | 7E-6 | 0 | 0 |
| preparing | 4E-6 | 0 | 0 |
| executing | 2E-6 | 0 | 0 |
| Sending data | 0.0296 | 0.03125 | 0 |
| end | 1E-5 | 0 | 0 |
| query end | 3E-6 | 0 | 0 |
| closing tables | 8E-6 | 0 | 0 |
| freeing items | 0.000125 | 0 | 0 |
| logging slow query | 2E-6 | 0 | 0 |
| cleaning up | 3E-6 | 0 | 0 |
+----------------------+----------+----------+------------+
16 rows in set
5、performance_schema
5.6之后版本,建議啟用
1>進入performance_schema 庫
mysql> use performance_schema ;
Database changed
2>mysql> update setup_instruments set enabled ='YES' where name like 'stage%';
Query OK, 0 rows affected
Rows matched: 0 Changed: 0 Warnings: 0
3>啟動歷史記錄表
mysql> update setup_consumers set enabled ='YES' where name like 'events%';
Query OK, 0 rows affected
Rows matched: 6 Changed: 0 Warnings: 0
到此,關于“怎么獲取有性能問題的sql”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。