【问题标题】:Best way to find average query time for critical queries in MYSQL在 MYSQL 中查找关键查询的平均查询时间的最佳方法
【发布时间】:2021-05-26 03:58:49
【问题描述】:

我们有 percona 监控工具来监控 Mysql db,生成缓慢的日志文件报告不会给我们即时结果。我们是否有任何最好的方法来使用指标/ promql 或查询分析等来处理它,我们可以获得关键查询的最小、最大、平均时间

【问题讨论】:

  • 您的应用程序使用哪种编程语言执行 MySQL 查询?

标签: mysql prometheus percona


【解决方案1】:

min,max,average -- 在你有足够的样本来取 min,max,average 之前,这些是没有意义的。重新思考“即时结果”的必要性。

pt-query-digest 可以每天或每小时(或其他)运行以获得“最近过去”的结果。

Percona、MariaDB 和 Oracle 等提供的各种监控工具可以绘制出许多指标。有的要花钱。即使对于慢速查询,有些也“接近”“即时结果”。

请用不同的词语描述您的目标;我们也许可以更好地指导您。

SHOW GLOBAL STATUS LIKE 'Threads_running';(或图形监控)之类的指标可以实时发现峰值。但是知道有峰值没有任何可操作性。

我更喜欢事后查看慢日志。 pt-query-digest 很容易识别出“最差”的查询。可以识别尖峰和瓶颈,但要等到它们“完成”。

死锁来自难以解析的SHOW ENGINE InnoDB STATUS;,但每次只有一个,事后才发生。

在一个没有很好调整的系统中,pt-query-digest 中的第一个 条目(有时)是一个消耗超过 50% 的系统资源的查询。修复那个 one 查询会有很大的不同。非常划算。

【讨论】:

    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多