繁体   English   中英

在mysql服务器中识别没有慢查询日志的慢查询

[英]Identify slow query without slow query logs in mysql server

我想知道是否还有其他方法可以检查慢查询而不记录慢查询。 假设我有一个非常繁忙的服务器,无法负担太多日志来节省内存和I / O。 然后,还有其他方法可以检查我的查询速度是否慢吗? 我知道,我们可以对查询进行性能分析,但仍不确定要做什么才能确定哪个查询占用了大部分时间和内存。

刚刚开始进行mysql管理,不确定如何处理。 任何指导将不胜感激。

我发现缓慢是造成服务器瘫痪的最佳来源。

建议您开始将long_query_time设置为较高的值。 这将使I / O和磁盘空间最小化。 如果可以,请更正其找到的查询。

用尽该功能后,请降低该设置以查找更多信息。

使用pt-query-digest查找“最差”查询。

请记住,即使值很少,高值也只能找到长查询。 较低的值将查找经常运行的快速查询,而这可能是真正的反派。

另一种方法是仅短暂地或在相对空闲的时间内打开慢速日志。 您发现的内容可能仍然非常有用。

轶事:在一个系统中,有一个查询,其中WHERE格式错误,以致其运行100%CPU。 一线修复将CPU降低到2%。

另一个轶事:特定查询速度很快,但是运行频繁。 一点点算术说,查询不应该像所看到的那样频繁地发出。 当查询本可以位于循环外时,它位于循环内。

返回您的操作方向...您可以手动执行SHOW PROCESSLIST来查看频繁或缓慢运行的内容。 这很乏味,命中或错过。 但是它可能同时捕获(1)慢速,不频繁的查询和(2)快速,频繁的查询。

如果您想发布SHOW VARIABLES; SHOW GLOBAL STATUS; ,我将检查数百个公式,这些公式可能会导致对无效性的更多了解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM