- content
说明
explain 用于获取后续 select 语句的查询计划(execution plan),返回数据库引擎如何执行该 SQL 的详细信息。
适用场景:
- SQL 性能调优——查看是否走索引、扫描行数等。
- 执行计划分析——判断是否有全表扫描、临时表等。
语法
explain select ...
explain后紧跟一条 select 语句。- 返回查询计划的列表(格式与数据库原生 explain 一致)。
例子
-- 查看 mysql 查询计划
explain select * from users where id = 1;
-- 返回类似:[{id:1, select_type:'SIMPLE', table:'users', type:'const', key:'PRIMARY', rows:1}, ...]
注意事项
- 仅对 JDBC 数据源有效——
explain实际上是把explain select ...透传给后端数据库执行。 - 对内存数据源(如
select * from [{a:1}])、redis、csv 等非 JDBC 数据源返回空列表。 - 返回格式取决于后端数据库——mysql 返回行列表,其他数据库的 explain 输出格式可能不同。
explain是前置命令,不是后置命令——它作用于紧跟其后的 select,而不是作用于前一条语句的结果。