如何提取 mysql 慢查询日志中记录的查询数量(计数),间隔为 10 分钟
How to extract the number (count) of queries logged in the mysql slow query log for a 10 minute interval
根据我的研究,我想到了使用 mysqldumpslow 实用程序来解析日志并提取结果,但无法弄清楚如何使用它。我想以10分钟的间隔获取慢查询日志中记录的查询次数,以便可以比较这些值进行分析。
谢谢
您可以使用logrotate每10分钟创建一个新的slow.log并一个接一个地分析它们。暗示您正在使用 Linux。请注意,您的示例显示您的 mysql 实例配置为 "log-queries-not-using-indexes",因此您还将获得那些不在日志文件中使用索引的 SELECT。
更新:
因为我仍然不知道你在使用什么OS,一个更通用的解决你的问题的方法是在the mysql docs之后将慢日志重定向到mysql本身并获取所有记录从慢日志 table 喜欢:
SELECT COUNT(*) FROM slow_log;
这会为您提供记录的查询总数。后面跟着一个:
TRUNCATE TABLE slow_log;
设置一个脚本,每 10 分钟执行一次此操作将输出所需的信息。
根据我的研究,我想到了使用 mysqldumpslow 实用程序来解析日志并提取结果,但无法弄清楚如何使用它。我想以10分钟的间隔获取慢查询日志中记录的查询次数,以便可以比较这些值进行分析。
谢谢
您可以使用logrotate每10分钟创建一个新的slow.log并一个接一个地分析它们。暗示您正在使用 Linux。请注意,您的示例显示您的 mysql 实例配置为 "log-queries-not-using-indexes",因此您还将获得那些不在日志文件中使用索引的 SELECT。
更新:
因为我仍然不知道你在使用什么OS,一个更通用的解决你的问题的方法是在the mysql docs之后将慢日志重定向到mysql本身并获取所有记录从慢日志 table 喜欢:
SELECT COUNT(*) FROM slow_log;
这会为您提供记录的查询总数。后面跟着一个:
TRUNCATE TABLE slow_log;
设置一个脚本,每 10 分钟执行一次此操作将输出所需的信息。