可以找出哪些 MySQL 查询很慢吗?

Posted

技术标签:

【中文标题】可以找出哪些 MySQL 查询很慢吗?【英文标题】:Can one find out which MySQL-queries were slow? 【发布时间】:2012-09-13 18:03:05 【问题描述】:

我使用 php 函数 mysql_stat() 来获取有关我的 MySQL 数据库的信息。

有一个条目Slow queries,在我的例子中是 94(301729 个查询)。是否有包含有关查询的更多信息的日志文件? (时间、执行时间、查询本身……)?

14 小时前我设置了一个新服务器,内存增加了 4 倍,但我仍然有 0.031154% 的慢查询,这与以前基本相同,我认为这是非常高的。我真的很想知道,哪些是慢查询,以及如何优化它们。慢查询的可接受比例是多少?

【问题讨论】:

还取决于 long_query_time 的值是什么。我已经看到它设置为“2”,这对于 OLTP 来说可能很好,但对于 OLAP 来说不是很好。 【参考方案1】:

您可以在 my.cnf 中启用日志慢查询。这会将慢速查询写入日志。

log_slow_queries = /var/log/mysql/mysql-slow.log

如果用户需要等待,我认为您的查询速度绝不应该低于 0.2 秒。在不涉及用户的情况下执行 crons 时,这并不重要。但是如果使用同一个数据库/表,cron的查询会减慢正常查询(加锁/i/o)。

您可以通过设置正确的索引来优化您的数据库,并使用 EXPLAIN 尝试不同的查询。

【讨论】:

以上是关于可以找出哪些 MySQL 查询很慢吗?的主要内容,如果未能解决你的问题,请参考以下文章

更新到 1.30 后,有人体验过 vscode 的速度很慢吗?

Laravel api 响应时间很慢?

mysql 查询的时候加了索引 查询还是很慢怎么办

我mysql数据查询的数据过多,查询很慢,大家说用索引,可是没有接触有索引。求实例

mysql 查询的时候加了索引 查询还是很慢怎么办

Ruby On Rails 很慢...?