在网上看,mysql慢查询配置很是简单,但是在配置过程中总碰到问题;
记录下配置过程,方便以后使用:
系统环境是mac系统
找到mysql安装路径/usr/local/mysql下的配置文件my.cnf 加入配置信息
slow_query_log_file = /usr/local/mysql/data/slowquery0309.log
long_query_time = 1
log-queries-not-using-indexes
其实这样配置是不标准的,mac下的日志都中目录var目录下面,所有后来改配置为:
slow_query_log_file = slow_query_log_file = /var/mysql/slowquery0310.log
long_query_time = 1
log-queries-not-using-indexes
启动mysql后需要开启数据库慢查询:set global slow_query_log = on;
在这里如果slowquery0310.log文件不存在,或者权限不够,都会报错,所以需要建立一个空文件,同时给予可写的权限:
可以查询:
可以看到数据库已经开启了慢查询;
执行测试慢查询,执行语句:select sleep(10);
因为设置1秒以上为慢查询,这里执行10秒,肯定会被记录,看下慢查询日志:
# Time: 150310 11:23:03
# User@Host: root[root] @ localhost [127.0.0.1] Id: 8
# Query_time: 10.004592 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
use platform_payment;
SET timestamp=1425957783;
select sleep(10)
这里很详细的记录了慢查询的sql,然后再使用 EXPLAIN 输出执行计划分析就ok了;
执行一个没有走索引的语句,也已经被记录了: