(转)MySQL慢查询分析优化 + MySQL调优

Posted littlevigra

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转)MySQL慢查询分析优化 + MySQL调优相关的知识,希望对你有一定的参考价值。

1.long_query_time的默认值为10,意思是运行10S以上的语句。
2.临时设置开启慢查询日志
mysql> show variables like \'%slow_query_log%\';
+---------------------+------------------------------------------+
| Variable_name       | Value                                    |
+---------------------+------------------------------------------+
| slow_query_log      | ON                                       |
| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |
+---------------------+------------------------------------------+
#使用set global slow_query_log=1开启了慢查询日志只对当前数据库生效
3.修改my.cnf文件,增加或修改参数slow_query_log 和slow_query_log_file后,然后重启MySQL服务器,如下所示:
slow_query_log =1
slow_query_log_file=/usr/local/mysql/data/localhost-slow.log

 

注意:使用命令 set global long_query_time=4修改后,需要重新连接或新开一个会话才能看到修改值。你用show variables like \'long_query_time\'查看是当前会话的变量值,你也可以不用重新连接会话,而是用show global variables like \'long_query_time\'; 如下所示:  
mysql> show global variables like \'long_query_time\';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 4.000000 |
+-----------------+----------+
日志分析工具mysqldumpslow:
比如:
得到返回记录集最多的10个SQL。
mysqldumpslow -s r -t 10 /database/mysql/mysql06_slow.log
 
得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /database/mysql/mysql06_slow.log
 
得到按照时间排序的前10条里面含有左连接的查询语句。
mysqldumpslow -s t -t 10 -g “left join” /database/mysql/mysql06_slow.log
 
另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
mysqldumpslow -s r -t 20 /mysqldata/mysql/mysql06-slow.log | more

参考: https://www.cnblogs.com/saneri/p/6656161.html

 

以上是关于(转)MySQL慢查询分析优化 + MySQL调优的主要内容,如果未能解决你的问题,请参考以下文章

mysql慢查询日志分析工具 mysqlsla(转)

MySQL优化:慢SQL分析

MYSQL数据库性能调优之三:explain分析慢查询

如何调优SQL

MySQL高级篇 - 性能优化

MySQL调优查询优化