SQLite Explain (Erklärung)
Vor einer SQLite-Anweisung kann das Schlüsselwort "EXPLAIN" oder die Phrase "EXPLAIN QUERY PLAN" verwendet werden, um die Details der Tabelle zu beschreiben.
Wenn das Schlüsselwort oder die Phrase EXPLAIN weggelassen wird, lösen alle Änderungen das Abfrageverhalten der SQLite-Anweisung aus und geben Informationen darüber zurück, wie die SQLite-Anweisung arbeitet.
Die Ausgabe von EXPLAIN und EXPLAIN QUERY PLAN wird nur für interaktive Analysen und Fehlerbehebung verwendet.
Die Details des Ausgabeformats können sich bei verschiedenen Versionen von SQLite ändern.
Anwendungen sollten EXPLAIN oder EXPLAIN QUERY PLAN nicht verwenden, da ihr genaues Verhalten variabel und nur teilweise dokumentiert ist.
Syntax
EXPLAINDie Syntax lautet wie folgt:
EXPLAIN [SQLite Query]
EXPLAIN QUERY PLANDie Syntax lautet wie folgt:
EXPLAIN QUERY PLAN [SQLite Query]
Beispiel
Angenommen, die COMPANY-Tabelle enthält die folgenden Datensätze:
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
Nun prüfen wir die SELECT-Anweisung auf ihreExplain-Verwendung:
sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;
Dies ergibt die folgenden Ergebnisse:
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
Nun prüfen wir die SELECT-Anweisung auf ihreExplain Query Plan-Verwendung:
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order from detail ---------- ---------- ------------- 0 0 TABLE COMPANYAndere Erweiterungen