慢查询日志主要记录那些查询比较慢的一些日志,我们可以从这些日志中查看那些查询语句查询的时间较长,然后优化查询。
一、查看慢查询日志状态
mysql> show variables like '%slow%';
+---------------------------+-----------------------------------------------------+
| Variable_name | Value |
+---------------------------+-----------------------------------------------------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | D:\MYSQL\mysql-5.7.20-winx64\data\gaolin-1-slow.log |
+---------------------------+-----------------------------------------------------+
mysql> show variables like ‘%long%’;
+----------------------------------------------------------+-----------+
| Variable_name | Value |
+----------------------------------------------------------+-----------+
| long_query_time | 10.000000 |
| performance_schema_events_stages_history_long_size | 10000 |
| performance_schema_events_statements_history_long_size | 10000 |
| performance_schema_events_transactions_history_long_size | 10000 |
| performance_schema_events_waits_history_long_size | 10000 |
+----------------------------------------------------------+-----------+
变量名称 | 解释 |
---|---|
slow_query_log_file | 慢查询日志放置的位置 |
slow_query_log | ON 表示开启,OFF表示结束 |
long_query_time | 单位为:s,可以精确到us; 如果查询时间超过了这个长度那么就记录到慢查询日志中 |
slow_launch_time | 如果线程建立的时间比这个值要长,那么slow_launch_time计数器将增加 |
二、解决日志开启问题
三、修改慢查询日志相关的参数
开启慢查询日志
mysql> set global slow_query_log=1;
修改当前Session的慢查询时间值,一旦我们stop 当前session,那么long_query_time就会恢复出原来的值
mysql> set session long_query_time=0.001;
#
mysqldumpslow查看慢查询日志分析