SQLite Explain (Пояснение)
Перед оператором SQLite можно использовать ключевое слово "EXPLAIN" или фразу "EXPLAIN QUERY PLAN", чтобы описать детали таблицы.
Если ключевое слово или фраза EXPLAIN опущены, любые изменения будут запускать поведение запроса оператора SQLite и возвращать информацию о том, как работает оператор SQLite.
Вывод EXPLAIN и EXPLAIN QUERY PLAN используется только для интерактивного анализа и устранения неполадок.
Детали формата вывода могут меняться в разных версиях SQLite.
Приложениям не следует использовать EXPLAIN или EXPLAIN QUERY PLAN, поскольку их точное поведение переменчиво и документировано лишь частично.
Синтаксис
EXPLAINСинтаксис выглядит следующим образом:
EXPLAIN [SQLite Query]
EXPLAIN QUERY PLANСинтаксис выглядит следующим образом:
EXPLAIN QUERY PLAN [SQLite Query]
Пример
Предположим, таблица 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
Теперь давайте проверим использованиеExplainдля оператора SELECT:
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
Теперь давайте проверим использованиеExplain Query Planдля оператора SELECT:
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;
order from detail ---------- ---------- ------------- 0 0 TABLE COMPANYДругие расширения