扫码一下
查看教程更方便
在 sqlite 语句之前,可以使用 "explain" 关键字或 "explain query plan" 短语,用于描述表的细节。
如果省略了 explain 关键字或短语,任何的修改都会引起 sqlite 语句的查询行为,并返回有关 sqlite 语句如何操作的信息。
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
现在,让我们检查 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