From 0facf15b0723506cbab871603ab1b79e375a603a Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Tue, 8 Oct 2024 15:41:44 +0800 Subject: [PATCH] sql-statement-explain: add explanation related to scalar subquery (#18727) (#18738) --- sql-statements/sql-statement-explain.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sql-statements/sql-statement-explain.md b/sql-statements/sql-statement-explain.md index 05d644de8143..8a3eb50322dc 100644 --- a/sql-statements/sql-statement-explain.md +++ b/sql-statements/sql-statement-explain.md @@ -7,6 +7,10 @@ summary: TiDB 数据库中 EXPLAIN 的使用概况。 `EXPLAIN` 语句仅用于显示查询的执行计划,而不执行查询。该语句为 `EXPLAIN ANALYZE` 语句的补充,后者会执行查询。如果 `EXPLAIN` 的输出与预期结果不匹配,可考虑在查询的每个表上执行 `ANALYZE TABLE`,以确保表统计信息是最新的。 +> **注意:** +> +> 某些子查询会在优化阶段被提前执行以生成可能更优的执行计划,即使是在 `EXPLAIN` 语句中。更详细的说明以及禁用此行为的方法请参见 [`tidb_opt_enable_non_eval_scalar_subquery`](/system-variables.md#tidb_opt_enable_non_eval_scalar_subquery-从-v730-版本开始引入) 和[禁止子查询提前展开](/explain-walkthrough.md#禁止子查询提前执行)。 + 语句 `DESC` 和 `DESCRIBE` 是 `EXPLAIN` 的别名。`EXPLAIN ` 的替代用法记录在 [`SHOW [FULL] COLUMNS FROM`](/sql-statements/sql-statement-show-columns-from.md) 下。 TiDB 支持 `EXPLAIN [options] FOR CONNECTION connection_id`,但与 MySQL 的 `EXPLAIN FOR` 有一些区别,请参见 [`EXPLAIN FOR CONNECTION`](#explain-for-connection)。