小巧、快速、可靠。
请选择其中的三个。
EXPLAIN

1. 语法

sql-stmt

EXPLAIN QUERY PLAN alter-table-stmt analyze-stmt attach-stmt begin-stmt commit-stmt create-index-stmt create-table-stmt create-trigger-stmt create-view-stmt create-virtual-table-stmt delete-stmt delete-stmt-limited detach-stmt drop-index-stmt drop-table-stmt drop-trigger-stmt drop-view-stmt insert-stmt pragma-stmt reindex-stmt release-stmt rollback-stmt savepoint-stmt select-stmt update-stmt update-stmt-limited vacuum-stmt

2. 描述

SQL 语句前面可以加上关键字 "EXPLAIN" 或短语 "EXPLAIN QUERY PLAN"。这两种修改都会使 SQL 语句的行为像查询一样,并返回有关 SQL 语句在省略 EXPLAIN 关键字或短语的情况下如何运行的信息。

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 影响。

本页最后修改于 2022-01-08 05:02:57 UTC