SQLite-Explain-Funktion
Übersetzungsergebnisse:
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-FunktionSyntax
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-FunktionBeispiel
假设 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