SQLite - GIẢI THÍCH

Câu lệnh SQLite có thể được đặt trước từ khóa "EXPLAIN" hoặc bởi cụm từ "EXPLAIN QUERY PLAN" được sử dụng để mô tả chi tiết của bảng.

Một trong hai sửa đổi khiến câu lệnh SQLite hoạt động như một truy vấn và trả về thông tin về cách câu lệnh SQLite sẽ hoạt động nếu từ khóa hoặc cụm từ EXPLAIN bị bỏ qua.

  • Đầu ra từ KẾ HOẠCH GIẢI THÍCH và GIẢI THÍCH CHỈ dành cho phân tích tương tác và khắc phục sự cố.

  • Các chi tiết của định dạng đầu ra có thể thay đổi từ bản phát hành SQLite này sang bản tiếp theo.

  • Các ứng dụng không nên sử dụng KẾ HOẠCH GIẢI THÍCH hoặc GIẢI THÍCH CÂU HỎI vì hành vi chính xác của chúng có thể thay đổi và chỉ được ghi lại một phần.

Cú pháp

cú pháp cho EXPLAIN như sau -

EXPLAIN [SQLite Query]

cú pháp cho EXPLAIN QUERY PLAN như sau -

EXPLAIN  QUERY PLAN [SQLite Query]

Thí dụ

Xem xét bảng COMPANY với các bản ghi sau:

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

Bây giờ, chúng ta hãy kiểm tra truy vấn con sau với câu lệnh SELECT -

sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000;

Điều này sẽ tạo ra kết quả sau.

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

Bây giờ, chúng ta hãy kiểm tra những điều sau Explain Query Plan với câu lệnh SELECT -

SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000;

order       from        detail
----------  ----------  -------------
0           0           TABLE COMPANY