当前位置:  开发笔记 > 后端 > 正文

在执行之前记录查询

如何解决《在执行之前记录查询》经验,为你挑选了1个好方法。

我遇到了一个问题,我运行一些查询,mysqld进程开始使用100%的CPU功率,没有结束.我想查明这个查询.问题是log/development.log只包含已完成的查询.任何的想法?



1> jonnii..:

我想你有几个选择.第一个是真正看看你的development.log并查看导致它的行为.看看你要求运行的查询并尝试查明该特定查询.如果花费大量时间,这可能意味着你正在做一些事情,比如返回n + 1个查询,丢失索引或其他一些性能杀手.

你说开发日志只有完成的查询.你不能弄清楚下一个运行的查询是什么吗?

您的其他选项涉及使用日志启动mysqld(我认为其中一些的名称已更改):

mysqld --log[=file_name] --log-slow-queries[=file_name]

使用mysql中的processlist显示当前语句列表:

show processlist;

为了防止这样的事情再次发生,您还可能需要一些时间来查看来自New Relic(http://www.newrelic.com/)的RPM性能监视器.

我希望这有帮助!

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有