SQLite Explain

sqlite explain

在 sqlite 語句之前,可以使用 "explain" 關(guān)鍵字或 "explain query plan" 短語,用于描述表的細(xì)節(jié)。

如果省略了 explain 關(guān)鍵字或短語,任何的修改都會引起 sqlite 語句的查詢行為,并返回有關(guān) sqlite 語句如何操作的信息。

  • 來自 explain 和 explain query plan 的輸出只用于交互式分析和排除故障。
  • 輸出格式的細(xì)節(jié)可能會隨著 sqlite 版本的不同而有所變化。
  • 應(yīng)用程序不應(yīng)該使用 explain 或 explain query plan,因為其確切的行為是可變的且只有部分會被記錄。

 

1. 語法

explain 的語法如下:

explain [sqlite query]

explain query plan 的語法如下:

explain  query plan [sqlite query]

假設(shè) 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

現(xiàn)在,讓我們檢查 select 語句中的 explain 使用:

sqlite> explain select *  from company  where salary >= 20000;

這將產(chǎn)生以下結(jié)果:

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

現(xiàn)在,讓我們檢查 select 語句中的 explain query plan 使用:

sqlite> explain query plan select * from company where salary &gt= 20000;
order       from        detail
----------  ----------  -------------
0           0           table company

下一節(jié):sqlite vacuum

sqlite教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频