慢查询日志简介
mysql慢查询日志对于跟踪有问题的查询非常有用,可以分析出代码实现中耗费资源的sql语句,对我们程序的优化有很高的参考。
查看慢查询日志是否开启
使用下面命令查看:
show variables like '%slow%';
slow_query_log OFF说明并未开启慢查询。
sqlow_query_log_file 是慢查询日志的存放位置。
开启慢查询
方法一:
使用下面命令开启:
set global slow_query_log='ON';
查看慢查询的超时时间,即sql语句执行时间查过设置的这个时间将视为慢查询。
show variables like '%long_query_time%';
sql语句执行时间大于10秒就视为慢查询
可以用下面命令设置mysql慢查询的超时时间:
set long_query_time = 5;
方法2:
在mysql的配置文件中开启:
在mysql.cnf或mysql.ini中添加如下几行
log-slow-queries #开启慢查询 long_query_time=5 #记录超过的时间,默认为10s log-slow-queries=/var/lib/mysql/slowquery.log #指定日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log
测试慢查询
执行以下下面这条语句:
select benchmark(100000000,md5('hello world'));
benchmark是mysql的一个简单的测试工具,可以测试某种具体数据库的执行效率,可以为函数指定一个测试循环次数和被测试的表达式,表达式可以是任何标量表达式。
打开慢查询日志文件查看慢查询日志
用mysqldumpslow工具查看慢查询日志:
mysqldumpslow -a /usr/local/mysql/data/localhost-slow.log
怎样终止掉慢查询日志中的sql语句
首先用 show processlist;找到正在执行的慢查询的ID,然后kill ID,即可强制结束掉该条sql语句。