2

在 oracle sql plus 中,在做性能测试时,我会做

set autotrace traceonly:

这将显示查询计划和统计信息而不打印实际结果。mysql中有什么等价的吗?

4

2 回答 2

2

不,在 MySQL 中没有可用的等价物,至少在社区版中没有。

MySQL 没有实现 Oracle 在其代码中的那种“工具”;所以没有等同于事件 10046 的跟踪。

您可以在 SELECT 语句前加上EXPLAIN关键字,这将产生输出,其中包含有关 MySQL 将用于运行该语句的执行计划的信息,但这只是一个估计,而不是对实际执行的监控。

您还可以在服务器上启用慢查询日志,以捕获执行时间超过long_query_time几秒的 SQL 语句,但这实际上只识别长时间运行的查询。这将为您提供 SQL 文本,以及经过的时间和检查的行数。

于 2013-01-26T00:24:51.423 回答
-1

要获取查询计划,只需添加EXPLAINSELECT查询的开头。

EXPLAIN SELECT * FROM table

如果这就是您所说的统计信息,它还会估计要读取的行数。

于 2013-01-25T22:47:08.420 回答