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