分析MySQL语句查询性能的方法除了使用 EXPLAIN 输出执行计划,还可以让MySQL记录下查询超过指定时间的语句,我们将超过指定时间的SQL语句查询称为“慢查询”。
中文名
慢查询
外文名
The slow query
含 义
超过指定时间的SQL语句查询
记录方法
开启“慢查询”记录功能等
记录慢查询的方法:
查看/设置“慢查询”的时间定义
1 2 3 4 5 6 7 | mysql> show variables like "long%" ; + -----------------+----------+ | Variable_name | Value | + -----------------+----------+ | long_query_time | 0.000100 | + -----------------+----------+ 1 row in set (0.00 sec) |
如上述语句输出,“慢查询”的时间定义为0.0001秒(方便测试,一般设置为1-10秒)。使用下面语句定义“慢查询”时间
1 2 | mysql> set long_query_time=0.0001; Query OK, 0 rows affected (0.00 sec) |
开启“慢查询”记录功能
1 2 3 4 5 6 7 8 9 | mysql> show variables 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.00 sec) |
上述语句查看“慢查询”的配置信息,你可以自定义日志文件的存放,但必须将 slow_query_log 全局变量设置为“ON”状态,执行以下语句:
1 2 | mysql> set global slow_query_log= ON ; Query OK, 0 rows affected (0.01 sec) |
结果:
1 2 3 4 5 6 7 8 9 | mysql> show variables 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.00 sec) |
转发:https://baike.baidu.com/item/%E6%85%A2%E6%9F%A5%E8%AF%A2/9200910?fr=aladdin