过了一段时间,mysql中记录的查询可能设置了慢于1秒的SQL语句。 刚才突然想起设置方法,有些参数的名称死活想不起来了,重新整理一下,自己做笔记。
在诊断问题以确定性能瓶颈方面,最容易发现和解决的问题是不需要MYSQL慢速查询和索引的查询。
确定,开始在mysql中查找不会“清爽”执行的SQL语句吧。
=====================================
方法一:使用这个方法。 啊,我喜欢这个即时性。
Mysql5.0和更高版本支持记录执行速度较慢的SQL语句。
mysql show variables like 'long% '; 注:此long_query_time用于定义慢于多少秒的是“慢查询”
-------------请参阅
variable _ name
-------------请参阅
| long_query_time | 10.000000 |
-------------请参阅
1原始插入(0.00 sec )。
mysql set long_query_time=1; 注:我设定了1。 也就是说,执行时间超过1秒的都是滚动查询。
查询确定,0Rowsaffected(0.00sec ) )。
mysql show variables like 'slow% ';
-------------请参阅
variable _ name
-------------请参阅
| slow_launch_time | 2 |
| slow_query_log | ON |注:是否打开日志记录
| slow _ query _ log _ file|/tmp/slow.log |注:设置在哪里
-------------请参阅
3原始安装(0.00 sec ) )。
mysqlsetglobalslow _ query _ log=' on '注:打开日志记录
当slow_query_log变量设置为ON时,mysql立即开始记录。
/etc/my.cnf可以是上述MYSQL全局变量的初始值。
long_query_time=1
sow _ query _ log _ file=/tmp/slow.log
=====================================
方法:mysqldumpslow命令
/path/mysqldumpslow-sc-T10/tmp/slow-log
这将输出记录次数最多的10个SQL语句。 现在,如下所示。
-s表示如何排序,c、t、l、r分别按照记录次数、时间、查询时间、返回的记录数进行排序,ac、at、al、ar表示对应的闪回;
-t表示top n的意思,返回前面的多少条数据;
-g,后可书写正则匹配模式,大小写不敏感;
例如
/path/mysqldumpslow-Sr-T10/tmp/slow-log
返回记录集最多的10个查询。
/path/mysqldumpslow-ST-T10-g“左连接”/tmp/slow-log
得到前10个按时间排序的查询语句,其中包括左连接。