2008-09-28 42 views
2

有没有什么方法可以查看每天在MySQL上花费最多时间查询哪种查询?MySQL主要做什么?

+0

http://stackoverflow.com/questions/20263/is-there-a-profiler-equivalent-for-mysql#82757 – 2008-09-28 22:41:30

回答

5

是,MySQL能够创建一个慢查询日志。你需要与--log-slow-queries标志启动mysqld

mysqld --log-slow-queries=/path/to/your.log 

然后你就可以解析使用mysqldumpslow日志:

mysqldumpslow /path/to/your.log 

更多信息是在这里(http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html)。

1

这取决于你的意思是'大多数时间'。可能有几千甚至几十万个查询,每个查询的时间很少,但消耗了90%的CPU/IO带宽。或者可能有几个巨大的异常值。 有用于性能监控和分析的工具,例如内置的PERFORMANCE_SCHEMA,来自Oracle/MySQL团队的企业工具以及可以跟踪整个应用程序堆栈性能的newrelic等在线服务。