sqlite

Datenbanknutzung; eingebettete relationale Datenbank

Englisch [ɪkˈspleɪn] US [ɪkˈsplen]

vt. Erklären Sie, warum...

vi. Erklären, erklären, verteidigen

SQLite-Explain-Funktion Syntax

Funktion: Vor der SQLite-Anweisung können Sie das Schlüsselwort „EXPLAIN“ oder die Phrase „EXPLAIN QUERY PLAN“ verwenden, um die Details der Tabelle zu beschreiben. Wenn das Schlüsselwort oder die Phrase EXPLAIN weggelassen wird, führt jede Änderung dazu, dass das Abfrageverhalten der SQLite-Anweisung Informationen über die Funktionsweise der SQLite-Anweisung zurückgibt. Die Ausgabe von EXPLAIN und EXPLAIN QUERY PLAN wird nur für interaktive Analysen und Fehlerbehebung verwendet. Die Details des Ausgabeformats können zwischen den SQLite-Versionen variieren. Anwendungen sollten EXPLAIN oder EXPLAIN QUERY PLAN nicht verwenden, da ihr genaues Verhalten variabel ist und nur teilweise protokolliert wird.

Syntax: Die Syntax von EXPLAIN lautet wie folgt:

EXPLAIN [SQLite-Abfrage]

Die Syntax von EXPLAIN QUERY PLAN lautet wie folgt:

EXPLAIN QUERY PLAN [SQLite-Abfrage]

SQLite-Explain-Funktion Beispiel

假设 COMPANY 表有以下记录:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0
现在,让我们检查 SELECT 语句中的 Explain 使用:

sqlite> EXPLAIN SELECT *  FROM COMPANY  WHERE Salary >= 20000;
这将产生以下结果:

addr        opcode      p1          p2          p3
----------  ----------  ----------  ----------  ----------
0           Goto        0           19
1           Integer     0           0
2           OpenRead    0           8
3           SetNumColu  0           5
4           Rewind      0           17
5           Column      0           4
6           RealAffini  0           0
7           Integer     20000       0
8           Lt          357         16          collseq(BI
9           Rowid       0           0
10          Column      0           1
11          Column      0           2
12          Column      0           3
13          Column      0           4
14          RealAffini  0           0
15          Callback    5           0
16          Next        0           5
17          Close       0           0
18          Halt        0           0
19          Transactio  0           0
20          VerifyCook  0           38
21          Goto        0           1
22          Noop        0           0
现在,让我们检查 SELECT 语句中的 Explain Query Plan 使用:

SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY