Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Từ khóa EXPLAIN trong MySQL – tương đương lệnh SHOWPLAN của Sybase ASE

Trong Sybase ASE, lệnh SET SHOWPLAN ON hiển thị kế hoạch truy vấn. Tương đương trong MySQL là từ khóa EXPLAIN (hoặc EXPLAIN ANALYZE từ 8.0.18).

Ví dụ minh họa

Tạo bảng có index trên StudentName:

mysql> CREATE TABLE DemoTable1531 (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20)
    -> );
mysql> CREATE INDEX Name_index1 ON DemoTable1531(StudentName);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1531(StudentName) VALUES
    -> ('Chris'), ('Robert'), ('David'), ('Mike'), ('Carol');

Chạy EXPLAIN cho truy vấn tìm tên 'Mike':

mysql> EXPLAIN SELECT * FROM DemoTable1531 WHERE StudentName = 'Mike';

Kết quả (rút gọn):

+----+-------------+---------------+------+---------------+-------------+---------+-------+------+----------+-------------+
| id | select_type | table         | type | possible_keys | key         | key_len | ref   | rows | filtered | Extra       |
+----+-------------+---------------+------+---------------+-------------+---------+-------+------+----------+-------------+
|  1 | SIMPLE      | DemoTable1531 | ref  | Name_index1   | Name_index1 | 63      | const |    1 |   100.00 | Using index |
+----+-------------+---------------+------+---------------+-------------+---------+-------+------+----------+-------------+

Giải thích các cột quan trọng

CộtÝ nghĩaMong muốn
typeLoại truy cậpconst, eq_ref, ref, range
possible_keysIndex có thể dùngCó tên index
keyIndex thực dùngTên index
key_lenĐộ dài khóa dùng (byte)Phù hợp kiểu cột
refCột/hằng số so khớpconst, func, col_name
rowsƯớc lượng hàng quétNhỏ
ExtraThông tin thêmUsing index, Using where

Trong ví dụ: type=ref, key=Name_index1, rows=1, Extra=Using index → **Covering index** (chỉ đọc index, không đọc bảng) – tối ưu nhất.

EXPLAIN ANALYZE (MySQL 8.0.18+)

Thực thi thật và đo thời gian:

EXPLAIN ANALYZE SELECT * FROM DemoTable1531 WHERE StudentName = 'Mike';

Hiển thị thêm: actual time, actual rows, loops.

So sánh nhanh

Sybase ASEMySQL
SET SHOWPLAN ONEXPLAIN
SET STATISTICS IO ONEXPLAIN ANALYZE / PROFILING