MySQL慢查询日志不打印的示例分析

这篇文章给大家分享的是有关MySQL慢查询日志不打印的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

测试环境修改 long_query_time=0.2
当执行性以下查询时,慢查询日志没有生效
mysql> select sleep(5);

+———-+
| sleep(5) |
+———-+
|        0 |
+———-+
1 row in set (5.00 sec)

⑴于是检查参数
mysql> show variables like ‘%query%’;
+——————————+——————+
| Variable_name                | Value            |
+——————————+——————+
| binlog_rows_query_log_events | OFF              |
| ft_query_expansion_limit     | 20               |
| have_query_cache             | YES              |
| long_query_time              | 1.000000         |
| query_alloc_block_size       | 8192             |
| query_cache_limit            | 0                |
| query_cache_min_res_unit     | 4096             |
| query_cache_size             | 0                |
| query_cache_type             | OFF              |
| query_cache_wlock_invalidate | OFF              |
| query_prealloc_size          | 8192             |
| slow_query_log               | ON               |
| slow_query_log_file          | /mlogs/slow1.log |
+——————————+——————+

发现配置正常

⑵于是检查以下两个参数
min_examined_row_limit、long-queries-not-using-indexes
mysql> show variables like ‘min_examined_ro%’;
+————————+——-+
| Variable_name          | Value |
+————————+——-+
| min_examined_row_limit | 10    |
+————————+——-+
1 row in set (0.00 sec)
mysql> show variables like ‘log_queries_not_using_indexes’;
+——————————-+——-+
| Variable_name                 | Value |
+——————————-+——-+
| log_queries_not_using_indexes | OFF   |
+——————————-+——-+

然后将min_examined_row_limit置为0,慢查询会记录

两个参数:
 log_queries_not_using_indexes,为on时表示记录没用到索引的查询,即使没有超过long_query_time
 min_examined_row_limit,表示查询超过多少条就记录(当 min_examined_row_limit=on的时候)

原因:select sleep(5)语句查询没有记录(即<min_examined_row_limit的值),且没用到索引

</min_examined_row_limit的值),且没用到索引

感谢各位的阅读!关于“MySQL慢查询日志不打印的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


【AD】美国洛杉矶/香港/日本VPS推荐,回程电信CN2 GIA线路,延迟低、稳定性高、免费备份_搬瓦工

【AD】炭云:36元/年/1GB内存/20GB SSD空间/500GB流量/5Gbps端口/KVM/香港/国际线路LUMEN