全部博文(2065)
分类: Mysql/postgreSQL
2010-01-31 23:09:42
MySQL 慢查询专题
[整理人:hkebao@126.com 整理时间:
一、打开慢查询日志
Windows下开启MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上
log-slow-queries=F:\MySQL\log\mysqlslowquery.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:\MySQL\log\mysqlslowquery.log为满查询日志存放的位置,一般这个目录要有MySQL的运行帐号的可写权限,一般都将这个目录设置为MySQL的数据存放目录;
long_query_time=2中的2表示查询超过两秒才记录;
测试:
我修正我的MYSQL配置文件里面添加如下两行
[mysqld]
log-slow-queries=C:\Program
Files\MySQL\MySQL Server 5.0\data\mysqlslowlog.log
long_query_time=1
重启服务,然后运行一个大查询语句
怎么我发现没有记录日志呢?
mysqldumpslow命令
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log
这会输出记录次数最多的10条SQL语句,其中:
比如
/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条里面含有左连接的查询语句。
小结
使用mysqldumpslow命令可以非常明确的得到各种我们需要的查询语句,对MySQL查询语句的监控、分析、优化是MySQL优化的第一步,也是非常重要的一步。
上网百度GOOGLE了一下发现这个工具是用第三方的脚本实现的。其MYSQL自带的是不存的。我上传这里面的脚本到我的附件地址:
http://blogimg.chinaunix.net/blog/upfile2/100207151618.zip
说明:
里面存放的是:mysqldumpslow等常用脚本,用于mysql和程序性能调优,解压后将scripts文件夹放入mysql根目录,安装perl环境之后即可使用。