解释
1.语法
2.说明
SQL 语句前面可以有关键字“EXPLAIN”或短语“EXPLAIN QUERY PLAN”。任一修改都会使 SQL 语句表现为查询,并返回有关在省略 EXPLAIN 关键字或短语的情况下 SQL 语句将如何运行的信息。
EXPLAIN 和 EXPLAIN QUERY PLAN 的输出仅用于交互式分析和故障排除。输出格式的详细信息可能会从一个 SQLite 版本到下一个版本发生变化。应用程序不应使用 EXPLAIN 或 EXPLAIN QUERY PLAN,因为它们的确切行为是可变的并且只有部分记录。
当 EXPLAIN 关键字单独出现时,它会导致该语句表现为一个查询,该查询返回 虚拟机指令序列,如果 EXPLAIN 关键字不存在,它将用于执行该命令。当 EXPLAIN QUERY PLAN 短语出现时,该语句返回有关将要使用的查询计划的高级信息。
此处更详细地描述了 EXPLAIN QUERY PLAN 命令 。
2.1. EXPLAIN 在运行时运行,而不是在准备时运行
EXPLAIN 和 EXPLAIN QUERY PLAN 前缀影响使用sqlite3_step()运行准备好的语句的行为。使用sqlite3_prepare()或类似方法生成新准备语句的过程(大部分)不受 EXPLAIN 的影响。(上一句的例外是,在构建 EXPLAIN QUERY PLAN 准备语句时,省略了 EXPLAIN QUERY PLAN 使用的一些特殊操作码,作为性能优化。)
这意味着在 sqlite3_prepare() 期间发生的操作不受 EXPLAIN 的影响。