生产环境下MySQL慢查询日志

5

我们在生产环境中使用的是MySql 5.5。是否建议在生产环境中启用慢查询日志?这样做的性能影响是什么?我参考了官方文档(这里),但没有提到性能问题。


如果您发现其中一个答案有帮助,请标记它们为已接受以关闭此问题。 - zedfoxus
2个回答

11

我强烈建议在生产环境中开启慢查询日志。无论您在开发、QA或预生产环境中做了多少记录,都不如在生产环境中更好地了解真实的性能情况。根据我的经验,性能损耗并不显著。

如果性能损耗变得显著,您可以通过将慢查询日志保存在不同的磁盘或磁盘阵列上来提高性能。

long_query_time 动态变量帮助 MySQL 确定要写入慢查询日志中的内容。如果您的 long_query_time 为 2 秒,并且您看到整堆查询被记录在慢查询日志中,您可以使用类似于 SET GLOBAL long_query_time=10 的方法提高 long_query_time 或者在 my.cnf 中更改它并重新启动 MySQL。

我喜欢将 long_query_time 设置为约 3 秒,并查看记录了什么,然后及时解决缓慢的问题。之后我会将其降低到 2 秒并保持在那里。记录是一回事,但采取记录行动——如解决长时间运行的查询、使用 iostat -xsar 监控 IO 等——也是至关重要的。


0

我从未发现使用慢查询日志会有任何性能损失,因此我认为可以安全地打开它。数据库仅保留一个额外的日志文件,其中将存储超过某个运行时间(可配置)的查询。之后,您可以通过分析慢查询来解决问题,例如执行以下操作:

EXPLAIN SELECT ... FROM ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接