mysql 8.0 慢查询_MySQL慢查询分析
【伍哥原創(chuàng)】
在我們做系統(tǒng)性能調優(yōu)的時候,數(shù)據(jù)庫的慢查詢語句的優(yōu)化是必不可少的,特別是電子商務類型的重度MYSQL應用類型。
下面我們一起來看看怎么做好MYSQL的慢查詢分析吧。
1,開啟MYSQL的慢查詢日志
首先在my.cnf配置里面加入慢查詢配置,然后建立慢查詢的日志文件,并把用戶和組修改為mysql,最后重啟mysqld。
接著測試一下慢查詢是否生效,可以訪問一下phpmyadmin或者跑一條select sleep(1),然后再cat一下/var/log/mysql-slow.log,如果看到有記錄就表示設置成功了。不過,生成慢查詢日志只是忠實的 記錄了每一條慢查詢,對于我們做分析并不方便。
2,安裝mysqlsla慢查詢分析工具
3,慢查詢統(tǒng)計
打開其中一個log統(tǒng)計文件,你會看到:
Report for slow logs: /var/log/mysql-slow.log
被分析的慢查詢日志文件
40 queries total, 12 unique
40條查詢;除了重復的,有12條查詢
Sorted by ‘t_avg’
按平均查詢時間排序
Grand Totals: Time 4 s, Lock 0 s, Rows sent 236, Rows Examined 8.63k
______________________________________________________________________ 001 ___
Count : 1 (2.50%)這條SQL出現(xiàn)了1次,占SQL總數(shù)的2.5%
Time : 588.994 ms total執(zhí)行時間總和, 588.994 ms avg平均每次查詢的時間, 588.994 ms最短時間 to 588.994 ms max最長時間 (13.78%)
Lock Time (s) : 91 μs total, 91 μs avg, 91 μs to 91 μs max (2.34%)
Rows sent : 30 avg, 30 to 30 max (12.71%)
Rows examined : 899 avg, 899 to 899 max (10.41%)
Database :
Users :
coreseektest@localhost : 100.00% (1) of query, 100.00% (40) of all users
Query abstract:
SET timestamp=N; SELECT * FROM ecm_goods WHERE goods_name LIKE ‘S’ ORDER BY ecm_goods.brand_id ASC LIMIT N, N;
Query sample:
SET timestamp=1341467496;
SELECT * FROM `ecm_goods` WHERE goods_name like ‘冰箱’ ORDER BY `ecm_goods`.`brand_id` ASC
LIMIT 0, 30;
______________________________________________________________________ 002 ___
Count : 2 (5.00%) 這條SQL出現(xiàn)了2次,占SQL總數(shù)的5%
Time : 57.38 ms total 執(zhí)行時間總和, 28.69 ms avg 平均每次查詢的時間, 27.503 ms 最短時間 to 29.877 ms max 最長時間 (1.34%)
Lock Time (s) : 134 μs total, 67 μs avg, 64 μs to 70 μs max (3.44%)
Rows sent : 3 avg, 3 to 3 max (2.54%)
Rows examined : 3 avg, 3 to 3 max (0.07%)
Database :
Users :
coreseektest@localhost : 100.00% (2) of query, 100.00% (40) of all usersQuery abstract:
SET timestamp=N; SELECT * FROM documents LIMIT N, N;
Query sample:
SET timestamp=1341399487;
SELECT * FROM `documents` LIMIT 0, 30;
…其他省略…
如果需要做更復雜的統(tǒng)計,可以參考官方文檔:http://hackmysql.com/mysqlsla_guide
如果希望每隔一段時間,比如一天,出一次慢查詢統(tǒng)計的話,可以寫一個shell腳本,然后放到/etc/crontab里面。這樣的話,就可以定期做查詢優(yōu)化。
【全文完 】
總結
以上是生活随笔為你收集整理的mysql 8.0 慢查询_MySQL慢查询分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 压缩备份日志 java_自动压缩备份日志
- 下一篇: java中怎样定义实数_Java Mat