06/04/2021, 14:50

EXPLAIN trong SQLite - SQLite căn bản và nâng cao

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ừ ...

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ừ EXPLAINEXPLAIN 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:

EXPLAIN [SQLite Query]

Cú pháp của EXPLAIN QUERY PLAN trong SQLite như sau:

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:

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

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

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

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

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

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

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

Cùng chủ đề
0