MySQL:SHOW PROFILES - 想要查看超过100条记录

时间:2012-08-07 18:12:42

标签: mysql performance

我正在对我的查询进行性能分析,并且需要能够查看比过去100次查询更多的内容。 Max profiling_history_size是100,但我看到调试工具以某种方式设法保存超过最后100个查询(例如,django调试工具)。

我做

SET profiling=1;
set profiling_history_size = 100;
SHOW PROFILES;

如果我可以将记录移动到另一个表格,那就没问题了。或者我可能需要完全在其他地方寻找?

我的程序运行了很多次相同的查询,所以我真正想要的是执行特定查询的所有时间的总和。一旦我收到所有问题,我就会做某种GROUP BY,但也许还有其他一些地方可以看? (我不是要问2个问题,但也许知道我最终需要什么会改变上述问题的答案。)

2 个答案:

答案 0 :(得分:0)

使用MySQL 5.6,语句(查询)由性能模式检测。

您可以获得查询所需的时间,以及更多的属性,例如返回的行数等,并且您可以获得许多不同的聚合。

http://dev.mysql.com/doc/refman/5.6/en/statement-summary-tables.html

http://dev.mysql.com/doc/refman/5.6/en/performance-schema-statements-tables.html

特别有用的聚合是通过摘要聚合,将几个“类似查询”组合在一起,其中类似意味着相同的结构但可能是不同的文字值(“select * from t1 where id = 1”和“select *”来自t1,其中id = 2“将汇总为”select * from t1,其中id =?“)

答案 1 :(得分:0)

如果您需要超过最近100次查询的信息,则只需每100次查询收集现有数据。我在PHP PDO中实现了后一个功能。

https://github.com/gajus/doll

这是一个应用层解决方案。