mysql 查询慢sql,mysql查看查询慢的语句

mysql 查询慢sql,mysql查看查询慢的语句,mysql慢查询使用详解

慢速查询是我们在mysql中经常需要用到的一个非常方便的功能。慢速查询对于跟踪有问题的查询非常有用,可以分析出当前程序中的那些Sql语句消耗的资源比较多。

1慢速查询定义

Mysql记录所有执行时间超过long_query_time参数设置的时间阈值的sql语句。慢速查询日志就是记录这些sql的日志。

2 开启慢查询日志

找到mysql配置文件my.cnf,添加到mysqld下。

复制代码如下:

log-slow-queries=d:/MySQL/log/mysqld-slow-query . log #日志所在的位置。(注意权限的问题,不需要设置,系统会给你一个默认文件host_name-slow.log)

Long-query-time=5 #SQL执行时间阈值,默认为10秒。

#log-long-format #表示log-long-format选项用于设置日志的格式,它以扩展的方式记录相关事件。扩展方法可以记录谁在何时发出查询的信息。它可以让我们更好地了解客户端的操作。

#log-slow-admin-statements #在慢速查询日志中记录慢速管理语句,如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE。

Log-queries-not-using-indexes #如果正在运行的sql语句不使用索引,mysql数据库也会在慢速查询日志文件中记录这条SQL语句。

配置后重启mysql服务。

3 测试

为了方便,我只在my.cnf中配置了慢速查询日志的路径.

mysql版本是5.1.73

关于long_query_time:从mysql 5.1开始,long_query_time开始以微秒为单位记录sql语句的运行时间,以前只能以秒为单位记录。这样可以更准确的记录SQL的运行时间,供DBA分析。

输入mysql。

复制代码如下:

mysql显示像“%slow%”这样的变量;#检查有关慢速查询日志的信息。

mysql设置全局long _ query _ time=0.01#将mysql location的值更改为0.01

mysql显示‘long _ query _ time’之类的变量;#看是否生效。

mysql选择睡眠(2);#延迟执行2秒注意:该sql执行后,慢速查询的日志文件中应该已经生成了相关的信息记录。

mysql显示像“%slow%”这样的全局状态;#查看慢速查询语句的次数

您可以看到日志文件中记录了sql。

总结:

Windows下开启MySQL慢查询

在MySQL Windows系统中,配置文件通常是[mysqld]下的my.ini

log-slow-queries=F: MySQL log mysqlslowquery . log

long_query_time=2

Linux下启用MySQL慢查询

在MySQL Windows系统中,配置文件通常是在[mysqld]下面找到的my.cnf

log-slow-queries=/data/MySQL data/slow query . log

long_query_time=2

注意

log-slow-queries=f: MySQL log mysqlslowquery . log是存储慢速查询日志的位置。这个目录一般要有MySQL的运行账号的可写权限,这个目录一般设置为MySQL的数据存储目录;

long_query_time=2中的2表示查询需要两秒以上的时间来记录;

mysql 查询慢sql,mysql查看查询慢的语句