You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询MySQL特定时间段内执行的总查询数及各查询执行时长

MySQL查询过去24小时总执行查询数及单条查询耗时的实现方案

以下是几种生产环境可用的落地方式,可根据业务场景选择:

方法1:使用Performance Schema(生产环境优先推荐)

MySQL 5.7及以上版本默认开启该组件,无需重启服务,性能损耗极低,适合长期采集使用:

  • 先确认组件开启状态,执行命令:
    SHOW VARIABLES LIKE 'performance_schema';
    返回值为ON即为已启用,若为OFF需要修改my.cnf配置文件添加performance_schema=ON后重启服务生效。
  • 开启语句事件采集规则:
-- 开启长历史语句消费器
UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME = 'events_statements_history_long';
-- 开启所有语句类型的采集和计时
UPDATE performance_schema.setup_instruments SET ENABLED = 'YES', TIMED = 'YES' WHERE NAME LIKE 'statement/%';

提前调整performance_schema_events_statements_history_long_size参数,根据业务QPS估算24小时产生的查询量,设置足够大的存储行数,避免数据被循环覆盖。

  • 统计过去24小时总查询数:
    SELECT COUNT(*) AS total_queries FROM performance_schema.events_statements_history_long WHERE TIMER_START > NOW() - INTERVAL 24 HOUR;
  • 查询每条语句的执行耗时(单位转换为毫秒):
    SELECT SQL_TEXT, TIMER_WAIT/1000000 AS execute_duration_ms FROM performance_schema.events_statements_history_long WHERE TIMER_START > NOW() - INTERVAL 24 HOUR ORDER BY execute_duration_ms DESC;

方法2:使用慢查询日志(临时排查适用)

通过调整慢查询阈值实现全量查询记录,适合短期采集场景:

  • 临时开启全量慢查询日志:
SET GLOBAL slow_query_log = 'ON';
-- 阈值设为0,所有查询都会被记录
SET GLOBAL long_query_time = 0;
SET GLOBAL log_output = 'FILE';
-- 替换为实际的日志存储路径,确保MySQL进程有写入权限
SET GLOBAL slow_query_log_file = '/data/mysql/logs/all_query_slow.log';
  • 采集满24小时后立即改回原有配置,避免占用过多磁盘资源:
    SET GLOBAL long_query_time = 你的原有慢查询阈值;
  • 解析日志获取统计结果:
    使用percona工具集的pt-query-digest可直接统计总查询数,执行命令:
    pt-query-digest /data/mysql/logs/all_query_slow.log | grep "Total queries"
    日志中每条记录的Query_time字段即为单条查询的执行时长,可直接批量提取。

注意:高QPS生产环境开启全量慢查询会产生大量日志,占用较多磁盘IO和存储空间,仅建议短期排查使用,采集完成后务必及时恢复原有配置。

方法3:通用查询日志(不推荐生产使用)

通用查询日志会记录所有到达MySQL实例的请求,但性能损耗极高,仅适合极低QPS的测试环境临时使用,开启命令:
SET GLOBAL general_log = 'ON';
采集完成后执行SET GLOBAL general_log = 'OFF';关闭即可,日志中可直接读取每条查询的执行时间和耗时。

内容的提问来源于stack exchange,提问作者adil khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 10:54:02