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