如何在特定时间段(如下午2点到4点)捕获MySQL昂贵的慢查询

时间:2016-12-24 23:35:57

标签: performance mysql-workbench monitoring

我刚刚开始使用mysql,想知道如何在某些时间段之间捕获mysql慢速运行查询,如下午2点到下午4点之间。为某些表提供了一些时间戳列,我非常有信心可以实现这一目标。但是,假设我们的表中没有几个表没有任何时间戳列,在这种情况下我们如何在sys或性能模式中应用过滤器来捕获特定时间段内所有表中的慢速运行查询,如2 - 下午4点。通过这种方式,只需将数据库性能集中在特定时间段,我们运行一些负载测试,而不是查看mysql中所有数据的历史记录

这个问题非常类似于在特定测试期间捕获oracle中的AWR报告。希望它清楚

1 个答案:

答案 0 :(得分:1)

这似乎是解决问题的相反方式。如果要监视性能,则需要采用与尝试直接加载测试或捕获sql语句不同的方法。自20世纪90年代以来,监控已经发生了很大变化,当时AWR报告是监控数据库性能的正确方法。今天我们可以实时监控生产,显然可以在test / dev中监控生产。您将看到无法重新创建的问题,因此花费大量时间尝试重新创建环境和负载比10-20年前我们拥有更一致的工作负载更加徒劳无益。特别是这种情况,因为API使我们的数据以非常不一致的方式显示给其他新应用程序:

  • 监控正在使用数据库的应用程序。通常,这是通过APM工具完成的。领导者可以在新的2016年APM魔力象限中找到,包括AppDynamics(我工作的地方),Dynatrace,New Relic。这些产品将记录生产中的所有语句,代码级性能甚至最终用户体验。您会发现每种产品之间的开销不同。 AppDynamics一直以生产为重点,开销低于3%。
  • 监控数据库。这是Oracle在Oracle上所做的事情,但现在的问题是典型企业通常有6-12个常见数据库。支持许多平台的工具都没有像供应商那样深入,但许多供应商工具,尤其是开源数据库领域的工具都非常缺乏(包括MySQL)。这就是我们为数据库构建AppDynamics的原因,该数据库现在支持超过15个平台,并且可部署SaaS或内部部署。在mysql上进行数据库监控的其他好方法包括VividCortex(仅限SaaS)和SelectStar(仅限新SaaS产品)。不要被那些在运行时收集指标的人所迷惑,这只是需要分析的一小部分。有关键的作业,查询和其他元数据。
  • 监控数据库所依赖的基础架构。这意味着从网络,存储和服务器层捕获指标。如果您想深入了解这些工具的性能监控工具,但是当您监控包含一些服务器和存储指标的更高层时,它们通常不是必需的。
祝你好运!