【发布时间】:2013-01-25 22:24:56
【问题描述】:
在oracle sql plus中,在做性能测试时,我会做
set autotrace traceonly:
这将显示查询计划和统计信息而不打印实际结果。 mysql中有什么等价的吗?
【问题讨论】:
标签: mysql performance
在oracle sql plus中,在做性能测试时,我会做
set autotrace traceonly:
这将显示查询计划和统计信息而不打印实际结果。 mysql中有什么等价的吗?
【问题讨论】:
标签: mysql performance
不,MySQL 中没有等效的版本,至少在社区版中没有。
MySQL 没有实现 Oracle 在其代码中的那种“工具”;所以没有等效于事件 10046 的跟踪。
您可以在 SELECT 语句前加上 EXPLAIN 关键字,这将产生输出,其中包含 MySQL 将用于运行该语句的执行计划的信息,但这只是一个估计值,而不是对实际执行的监控.
您还可以在服务器上启用慢查询日志,以捕获执行时间超过long_query_time 秒的 SQL 语句,但这实际上只识别长时间运行的查询。这将为您提供 SQL 文本,以及经过的时间和检查的行数。
【讨论】:
要获取查询计划,只需将EXPLAIN 添加到SELECT 查询的开头即可。
EXPLAIN SELECT * FROM table
如果这就是您所说的统计数据,它还会估计要读取的行数。
【讨论】: