使用Mysql慢查询日志对有效率问题的SQL进行监控
输入命令:show variables like 'slow%'
可以发现 slow_query_log 为 OFF(默认),表示未开启慢查询日志
slow_query_log_file 为慢查询日志文件
开启慢查询日志有两种方法
方法一: 临时开启
set global slow_query_log = on;
#没有使用索引的sql将会被记录入慢查询日志
set global log_queries_not_using_indexes = on;
#查询时间大于等于long_query_time (单位秒)的sql将会被记录入慢查询日志
set global long_query_time = 1; # 1 表示 大于等于1s的sql记录在慢查询日志中,可以更改为毫秒甚至更少(修改之后,先关闭数据库连接,再重新连接后才能查看到修改)
方法二:永久性开启
更改mysql配置文件my.ini(windows),[mysqld]后追加画红框中的参数:
这里long_query_time = 0 表示所有的查询都记录到慢查询日志,只是为了检测配置是否生效,实际应用应该给一个合理的值。
保存配置文件,记得重启apache
慢查询日志开启后,被监控到的sql 都会写入 slow_query_log_file 中,格式如下:
既然生成了慢查询日志,当然也有慢查询日志分析工具,比如:mysql自带的 mysqldumpslow ,这里就不多说了。