MySQL“慢SQL”定位

MySQL“慢SQL”定位

数据库调优我个人觉得必须要明白两件事
1.定位问题(你得知道问题出在哪里,要不然从哪里调优呢)
2.解决问题(这个没有基本的方法来处理,因为不同的问题处理的方式方法不一样,
得从实践中不断的探索,如sql调优,配置优化,硬件升级等等)

这一篇文章将会教会你如何来定位一个慢查询的sql,如果你是一个初学者,很想知道在mysql
中如何来定位哪些sql语句是花时间最长的。

步骤1:查询是否开启了慢查询

show variables like '%slow%';

下面会输出相关的信息
+---------------------+-----------------------------+
| Variable_name | Value |
+---------------------+-----------------------------+
| log_slow_queries | ON |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_file | /data/mysql-slow/mysql-slow |
+---------------------+-----------------------------+
我这里是开启了,没有开启的,直接set log_slow_queries on 就ok了。

步骤2:设置慢查询的时间限制

mysql默认的慢查询时间是10秒,可以设置成其它的时间。
show variables like 'long_query_time';
set long_query_time=1;

步骤3:查看慢查询

show status like 'slow_queries';
它会显示慢查询sql的数目,具体的sql就在上面的Log file日志中可以看到。

你也可以看到当前有多个连接在上,使用命令 show status like 'connection'

其它命令
show processlist: 查看哪些线程在运行;
show open tables:查看哪些表在使用。

posted @ 2016-05-11 11:44  WONDERFUL_cnblogs  阅读(2149)  评论(0)    收藏  举报