教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql慢查询配置方法详解

mysql慢查询配置方法详解

发布时间:2023-05-02   编辑:jiaochengji.com
教程集为您提供mysql慢查询配置方法详解等资源,欢迎您收藏本站,我们将为您提供最新的mysql慢查询配置方法详解资源
mysql慢查询我们会使用官方的mysqldumpslow命令来分析,下面我来介绍mysql慢查询配置,分析,日志等等具体实现方法详解.

mysql服务器有一项功能,可以检测到哪条sql语句查询得比较慢,就是慢查询slowlog,现在介绍如何开启。
在[mysqld]下面增加如下代码:

long_query_time = 1
log-slow-queries = /usr/local/mysql/data/slow.log
log-queries-not-using-indexes

long_query_time = 1 #定义超过1秒的查询计数到变量Slow_queries。
log-slow-queries = /usr/local/mysql/data/slow.log #定义慢查询日志路径。
log-queries-not-using-indexes #未使用索引的查询也被记录到慢查询日志中(可选)。
mysql自带了一个查看慢日志的工具mysqldumpslow。
执行mysqldumpslow –h可以查看帮助信息。
主要介绍两个参数-s和-t
-s 这个是排序参数,可选的有:
al: 平均锁定时间
ar: 平均返回记录数
at: 平均查询时间
c: 计数
l: 锁定时间
r: 返回记录
t: 查询时间

-t n 显示头n条记录。


MySQL慢查询分析mysqldumpslow

/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log
这会输出记录次数最多的10条SQL语句,其中:


•-s, 是表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒叙;
•-t, 是top n的意思,即为返回前面多少条的数据;
•-g, 后边可以写一个正则匹配模式,大小写不敏感的;
比如
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回记录集最多的10个查询。
/path/mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log
得到按照时间排序的前10条里面含有左连接的查询语句。

MySQL的慢查询记录/日志

Windows下开启MySQL慢查询

MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上
log-slow-queries = F:MySQLlogmysqlslowquery.log
long_query_time = 2


Linux下启用MySQL慢查询

MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2

注意
log-slow-queries = F:MySQLlogmysqlslowquery.log为慢查询日志存放的位置,一般这个目录要有MySQL的运行帐号的可写权限,一般都将这个目录设置为MySQL的数据存放目录;
long_query_time=2中的2表示查询超过两秒才记录;

2009年09月24日更新
在my.cnf或者my.ini中添加log-queries-not-using-indexes参数,表示记录下没有使用索引的查询。比如:
log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2
log-queries-not-using-indexes

您可能感兴趣的文章:
mysql慢查询开启与配置
mysql开启慢查询以检查查询慢的语句
如何开启mysql和php慢日志
mysql中使用limit时,explain带来的问题分析
mysql开启慢查询实例演练(图文)
mysql优化之如何定位效率较低的SQL
mysql开启慢查询日志的方法
查找和调优MySQL慢查询的方法
MySQL slow_query_log慢查询日志配置详解
mysql 子查询与join性能对比

[关闭]
~ ~