上篇博客已经列举了我们经常要用到的查询mysql状态的命令,当我们查看数据库状态一切正常时,此时某些查询还是很慢,我们就需要去找到这些慢查询,下面先了解什么是慢查询。
慢查询:
分析mysql语句性能的方法,可以让mysql记录下查询超过指定时间的语句,我们将超过指定时间的sql语句查询称为“慢查询”。指定时间指运行时间超过long_query_time值得SQL,long_query_time的默认值是10,意思是运行10s以上的语句。默认情况下mysql数据库不启动慢查询日志,需要我们手动来开启。如果不是调优需要的话,一般不建议启动慢查询日志,其或多或少会带了一定的性能影响。
慢查询相关参数:
1)slow_query_log :是否开启慢查询日志,1表示开启,0表示关闭。
2)long_query_time : 慢查询阈值,当查询事件超过设定的时间,记录日志。
开启慢查询:
一、windows下实现:
1)打开命令窗口,进入mysql的server安装路径
2)设置慢查询时间为1s
set long_query_time = 1;
3)获取慢查询条数
show status like 'slow_queries';
4)设置将慢查询sql记录日志中
先关闭mysql,再以安全模式启动(这个模式mysql不建议使用,我们测试先用这个模式启动)
bin\mysqld.exe - -safe-mode - -slow-query-log
5)mysql默认会将日志文件记录在my.ini文件中记录的位置,如果找不到,用下面的命令
show global variables like "%datadir%";
6)查看日志记录
# Time: 170617 17:54:49
# User@Host: root[root] @ localhost [::1] Id: 1
# Query_time: 1.560115 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
use temp;
SET timestamp=1497693289;
select sleep(1.56);