慢查询为什么没有按照long_query_time这个参数记录sql语句
本帖最后由 wrh 于 2025-8-11 17:05 编辑我的库版本是:Server version: 8.0.32-26 GreatSQL (GPL), Release 26
其中慢查询参数如下:
mysql> show variables like '%slow%';
+-----------------------------------+---------------+
| Variable_name | Value |
+-----------------------------------+---------------+
| log_slow_admin_statements | OFF |
| log_slow_extra | OFF |
| log_slow_filter | |
| log_slow_rate_limit | 1 |
| log_slow_rate_type | session |
| log_slow_replica_statements | ON |
| log_slow_slave_statements | ON |
| log_slow_sp_statements | ON |
| log_slow_verbosity | |
| max_slowlog_files | 0 |
| max_slowlog_size | 0 |
| slow_launch_time | 2 |
| slow_query_log | ON |
| slow_query_log_always_write_time| 10.000000 |
| slow_query_log_file | /tmp/slow.log |
| slow_query_log_use_global_control | |
+-----------------------------------+---------------+
16 rows in set (0.02 sec)
mysql> show variables like '%long_query%';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.01 sec)
我设置的long_query_time =10,应该日志里面记录的应该是大于10秒的查询被记录,为什么日志里面只有几微妙也会被记录?
记录的信息:# Query_time: 0.004923Lock_time: 0.000001Rows_sent: 21Rows_examined: 6137Rows_affected: 0Bytes_sent: 1682
按照里面写法,应该Query_time才4微妙吧?
是我那里理解有问题吗?有大佬知道吗
看下是不是这个参数影响的 https://greatsql.cn/docs/8.0.32-27/2-about-greatsql/4-2-greatsql-slow-log.html#关于-log-queries-not-using-indexes
另外,也请把slow query log信息贴全了,例如下面这样
# Query_time: 0.006571Lock_time: 0.000004 Rows_sent: 14Rows_examined: 43 Thread_id: 21 Errno: 0 Killed: 0 Bytes_received: 58 Bytes_sent: 289 Read_first: 2 Read_last: 0 R
ead_key: 13 Read_next: 9 Read_prev: 0 Read_rnd: 0 Read_rnd_next: 15 Sort_merge_passes: 0 Sort_range_count: 0 Sort_rows: 0 Sort_scan_count: 0 Created_tmp_disk_tables: 0 Creat
ed_tmp_tables: 0 Start: 2025-07-17T14:47:42.308420+08:00 End: 2025-07-17T14:47:42.314991+08:00 Schema:Rows_affected: 0
# Tmp_tables: 0Tmp_disk_tables: 0Tmp_table_sizes: 0
# InnoDB_trx_id: 0
# Full_scan: YesFull_join: YesTmp_table: NoTmp_table_on_disk: No
# Filesort: NoFilesort_on_disk: NoMerge_passes: 0
# InnoDB_IO_r_ops: 2InnoDB_IO_r_bytes: 32768InnoDB_IO_r_wait: 0.004966
# InnoDB_rec_lock_wait: 0.000000InnoDB_queue_wait: 0.000000
# InnoDB_pages_distinct: 22
SET timestamp=1752734862;
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA;
敏感数据可以脱敏处理 yejr 发表于 2025-8-11 17:27
看下是不是这个参数影响的 https://greatsql.cn/docs/8.0.32-27/2-about-greatsql/4-2-greatsql-slow-log.h ...
哦,是的,他语句因为数据量少,也都没索引,又设置了这个参数。 wrh 发表于 2025-8-12 09:49
哦,是的,他语句因为数据量少,也都没索引,又设置了这个参数。
你的这个场景已更新到FAQ案例中了:https://greatsql.cn/docs/8.0.32-27/11-faq/5-faq-others.html#_21-为什么有些很快的sql操作也被记录到slow-query-log中 yejr 发表于 2025-8-12 10:41
你的这个场景已更新到FAQ案例中了:https://greatsql.cn/docs/8.0.32-27/11-faq/5-faq-others.html#_21- ...
这个还有一个问题,他是设置了log_queries_not_using_indexes这个参数
mysql> show variables like 'log_queries_not_using_indexes'
-> ;
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON |
+-------------------------------+-------+
1 row in set (0.00 sec)
但是他也设置了log_throttle_queries_not_using_indexes这个,应该每分钟就只有5条会被记录呀,但是他slow文件刷的非常快,不止记录5条
mysql> show variables like 'log_throttle_queries_not_using_indexes'
-> ;
+----------------------------------------+-------+
| Variable_name | Value |
+----------------------------------------+-------+
| log_throttle_queries_not_using_indexes | 5 |
+----------------------------------------+-------+
1 row in set (0.01 sec) wrh 发表于 2025-8-13 10:18
这个还有一个问题,他是设置了log_queries_not_using_indexes这个参数
mysql> show variables like 'log_ ...
是同样的SQL每分钟记录5条,不是所有的SQL记录5条,你看下是哪种情况 yejr 发表于 2025-8-13 10:49
是同样的SQL每分钟记录5条,不是所有的SQL记录5条,你看下是哪种情况
相同语句,是不是指条件里面的值也要相同? wrh 发表于 2025-8-13 11:14
相同语句,是不是指条件里面的值也要相同?
是的
页:
[1]