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