基本定义
分析MySQL语句查询性能的方法除了使用EXPLAIN输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。
编辑本段记录慢查询的方法:
查看/设置“慢查询”的时间定义
1
2
3
4
5
6
7
|
mysql>showvariables
like "long%" ;
+ -----------------+----------+
|Variable_name|Value|
+ -----------------+----------+
|long_query_time|0.000100|
+ -----------------+----------+
1row
in set (0.00sec)
|
如上述语句输出,“慢查询”的时间定义为0.0001秒(方便测试,一般设置为1-10秒)。使用下面语句定义“慢查询”时间
1
2
|
mysql>
set long_query_time=0.0001;
QueryOK,0
rows affected(0.00sec)
|
开启“慢查询”记录功能
1
2
3
4
5
6
7
8
9
|
mysql>showvariables
like "slow%" ;
+ ---------------------+------------------------------------+
|Variable_name|Value|
+ ---------------------+------------------------------------+
|slow_launch_time|2|
|slow_query_log|
OFF |
|slow_query_log_file|/opt/mysql/data/localhost-slow.log|
+ ---------------------+------------------------------------+
3
rows in set (0.00sec)
|
上述语句查看“慢查询”的配置信息,你可以自定义日志文件的存放,但必须将slow_query_log
全局变量设置为“ON”状态,执行以下语句:
1
2
|
mysql>
set global slow_query_log= ON ;
QueryOK,0
rows affected(0.01sec)
|
结果:
1
2
3
4
5
6
7
8
9
|
mysql>showvariables
like "slow%" ;
+ ---------------------+------------------------------------+
|Variable_name|Value|
+ ---------------------+------------------------------------+
|slow_launch_time|2|
|slow_query_log|
ON |
|slow_query_log_file|/opt/mysql/data/localhost-slow.log|
+ ---------------------+------------------------------------+
3
rows in set (0.00sec)
|
转载于:https://blog.51cto.com/actionweb/1301409