开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql_设置慢查询执行时间无效


文章目录

  • 问题描述
  • 我的使用场景描述
  • 结论
  • 本人其他相关文章链接


问题描述

开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql?

我的使用场景描述

我采用执行sql修改配置文件,也就是采用“临时生效操作步骤”开启慢SQL,比如我设置的是超时100毫秒就记录sql,但是发现的现象是100毫秒、10毫秒、20、50毫秒的都会被记录如图1,这明显就不对,于是我查了chatGPT它给出的答案是如图2,我觉得它给的答案说服不了我,就算有执行时间精度问题,100毫秒和10毫秒在计算机中差距已经很大了好吧,于是我在想会不会是“临时生效操作步骤”的方案不生效,必须采用“永久生效方式”才行,于是我做了如下实验。

开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql_数据库_02


如图1

开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql_sql_03


如图2

我想验证下“永久生效方式”是否能100%保存出慢sql,也就是超过100毫秒的sql,结果如图3,发现所有的都是100毫秒之外的SQL,那就证明咱们的猜想是正确的的。

开启慢SQL设置long_query_time=0.1为啥会统计的sql却存在小于100毫秒的sql_慢sql功能_04


如图3

结论

推线使用“永久方式(也就是修改配置文件方式)”会有效。