【问题标题】:How to extract the number (count) of queries logged in the mysql slow query log for a 10 minute interval如何提取在 10 分钟间隔内记录在 mysql 慢查询日志中的查询数(计数)
【发布时间】:2016-07-28 19:35:33
【问题描述】:

根据我的研究,我想使用 mysqldumpslow 实用程序来解析日志并提取结果,但无法弄清楚如何使用它。我想获取慢查询日志中每隔 10 分钟记录的查询数,以便比较这些值进行分析。

谢谢

【问题讨论】:

  • 日志文件的示例输出:SELECT * FROM pets; # Time: 160726 13:13:32 # User@Host: root[root] @ localhost [] Id: 1477608 # Query_time: 0.001048 Lock_time: 0.000807 Rows_sent: 1 Rows_examined: 1 SET timestamp=1469553212;从 information_schema.PROCESSLIST 中选择计数(*); # Time: 160726 13:18:49 # User@Host: root[root] @ localhost [] Id: 1477685 # Query_time: 0.000486 Lock_time: 0.000155 Rows_sent: 1 Rows_examined: 8 SET timestamp=1469553529;

标签: mysql database-administration mysql-slow-query-log


【解决方案1】:

您可以使用logrotate 每 10 分钟创建一个新的 slow.log 并逐个分析它们。暗示您正在使用Linux。请注意,您的示例显示您的 mysql 实例配置为“log-queries-not-using-indexes”,因此您还将获得那些不使用日志文件中的索引的 SELECT。

更新:

由于我仍然不知道您使用的是什么操作系统,解决您的问题的更通用方法是将慢速日志重定向到 mysql 本身,遵循the mysql docs 并从慢速日志表中获取所有记录,例如:

SELECT COUNT(*) FROM slow_log;

这为您提供了记录的查询总数。后跟一个:

TRUNCATE TABLE slow_log;

每 10 分钟执行一次脚本将输出所需的信息。

【讨论】:

  • 我不需要完整的日志信息。我只需要连续 10 分钟间隔的查询总数。你有什么建议来处理这个问题吗?
  • 如果您将我的答案标记为正确,我将不胜感激
猜你喜欢
  • 2012-09-26
  • 1970-01-01
  • 2012-11-05
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
  • 1970-01-01
  • 2020-10-16
相关资源
最近更新 更多