首页 > 代码库 > 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慢查询