首页 > 代码库 > mysql慢查询
mysql慢查询
MYSQL慢查询
一、查看系统所有参数状态:
mysql> show variables
二、查看慢查询的定义:
mysql> show variables like ‘%quer%‘;
| log_slow_queries | ON |
| long_query_time | 5.000000 |
mysql> show variables like ‘slow%‘;
+---------------------+-------------------------------+
| Variable_name | Value |
+---------------------+-------------------------------+
| slow_launch_time | 5 |
| slow_query_log | ON |
| slow_query_log_file | /var/log/mysql/slow_query_log |
+---------------------+-------------------------------+
3 rows in set (0.00 sec)
三、修改慢查询定义:
1.立即修改:
开启慢查询功能、时间定义
mysql> SET log_slow_queries=on;
mysql> SET long_query_time=5;
开启慢查询记录功能、时间定义、文件保存位置
mysql> SET slow_query_log=on;
mysql> SET slow_launch_time=5;
mysql> SET slow_query_log_file=/var/log/mysql/slow_query_log;
2.修改配置文件(需要重启服务)
vim /etc/my.cnf
开启慢查询功能、时间定义
log_slow_queries=on|off
long_query_time=5
开启慢查询记录功能、时间定义、文件保存位置
slow_query_log=on|off
slow_launch_time=5
slow_query_log_file=/var/log/mysql/slow_query_log
重启服务
service mysql restart
四、其他设置
1.记录所有没有使用到索引的查询语句
log_queries_not_using_indexes=on|off
2.记录那些由于查找了多余1000次而引发的慢查询
min_examined_row_limit=1000
3.记录那些慢的OPTIMIZE TABLE,ANALYZE TABLE和ALTER TABLE语句
log-slow-admin-statements
4.记录由slave所产生的慢查询
log-slow-slave-statements
五、日志分析工具mysqldumpslow
-s, 是表示按照何种方式排序:
c: 访问计数
l: 锁定时间
r: 返回记录
t: 查询时间
al:平均锁定时间
ar:平均返回记录数
at:平均查询时间
-t, 是top n的意思,即为返回前面多少条的数据;
-g, 后边可以写一个正则匹配模式,大小写不敏感的;
例:
1.得到返回记录集最多的10个SQL。
mysqldumpslow -s r -t 10 /var/log/mysql/slow_query_log/mysql06_slow.log
2.得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /var/log/mysql/slow_query_log/mysql06_slow.log
3.得到按照时间排序的前10条里面含有左连接的查询语句。
mysqldumpslow -s t -t 10 -g “left join” /var/log/mysql/slow_query_log/mysql06_slow.log
4.另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
mysqldumpslow -s r -t 20 /var/log/mysql/slow_query_log/mysql06-slow.log | more
mysql慢查询