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

如何统计MySQL中语句执行次数并按总执行次数降序排序结果

MySQL SQL语句执行次数统计方案

你现有的查询仅实现了从通用日志中过滤增删改查类SQL的功能,要统计每条语句的执行次数并按次数降序排序,调整后的SQL如下:

SELECT 
    CONVERT(argument USING utf8) AS sql_statement,
    COUNT(*) AS execute_total
FROM mysql.general_log
WHERE 
    argument LIKE '%SELECT%' 
    OR argument LIKE '%INSERT%' 
    OR argument LIKE '%DELETE%' 
    OR argument LIKE '%UPDATE%'
GROUP BY sql_statement
ORDER BY execute_total DESC;

可选优化说明

  • 可以用REGEXP简化多条件匹配:将WHERE后的多个OR条件替换为argument REGEXP 'SELECT|INSERT|DELETE|UPDATE',如果仅需要匹配以这四个关键字开头的语句,可调整为argument REGEXP '^(SELECT|INSERT|DELETE|UPDATE)',过滤更精准。
  • 执行前可先运行SHOW VARIABLES LIKE 'general_log';确认通用日志处于开启状态,值为ON才能正常获取日志数据。
  • 若日志量较大,建议增加时间范围过滤条件缩小扫描范围,比如添加AND event_time >= '2024-01-01 00:00:00'。
  • 如果需要忽略SQL语句的大小写差异统计,可将分组条件改为GROUP BY LOWER(sql_statement)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:15:03