Câu lệnh SQLite
có thể được bắt đầu bằng từ khóa “EXPLAIN
” hoặc bằng cụm từ “EXPLAIN QUERY PLAN
” được sử dụng để mô tả các chi tiết của bảng.
Việc sửa đổi làm cho câu lệnh SQLite
hoạt động như một truy vấn và trả về thông tin về câu lệnh SQLite
sẽ hoạt động như thế nào nếu từ khóa hoặc cụm từ EXPLAIN
bị bỏ qua.
- Đầu ra từ
EXPLAIN
vàEXPLAIN QUERY PLAN
chỉ dành cho phân tích và xử lý sự cố tương tác.
Các ứng dụng không nên sử dụng EXPLAIN
hoặc EXPLAIN QUERY PLAN
vì hành vi chính xác của chúng là khác nhau và chỉ được ghi lại một phần.
1. Cú pháp EXPLAIN trong SQLite
Cú pháp cho EXPLAIN
trong SQLite
như sau:
1
|
EXPLAIN [SQLite Query] |
Cú pháp của EXPLAIN QUERY PLAN
trong SQLite
như sau:
1
|
EXPLAIN QUERY PLAN [SQLite Query] |
2. Ví dụ EXPLAIN trong SQLite
Giả sử chúng ta có bảng COMPANY
có các bản ghi như sau:
1
2
3
4
5
6
7
8
9
|
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 sub-query sau với câu lệnh SELECT
1
|
sqlite> EXPLAIN SELECT * FROM COMPANY WHERE Salary >= 20000; |
Điều này sẽ tạo ra kết quả sau đây.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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 Explain Query Plan sau đây với câu lệnh SELECT
1
2
3
4
5
|
SQLite> EXPLAIN QUERY PLAN SELECT * FROM COMPANY WHERE Salary >= 20000; order from detail ---------- ---------- ------------- 0 0 TABLE COMPANY |
——————-#####——————-
Loạt bài SQLite được biên dịch từ TutorialsPoint.
Nguồn:https://freetuts.net