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ĩa | Mong muốn |
|---|---|---|
| type | Loại truy cập | const, eq_ref, ref, range |
| possible_keys | Index có thể dùng | Có tên index |
| key | Index thực dùng | Tên index |
| key_len | Độ dài khóa dùng (byte) | Phù hợp kiểu cột |
| ref | Cột/hằng số so khớp | const, func, col_name |
| rows | Ước lượng hàng quét | Nhỏ |
| Extra | Thông tin thêm | Using 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 ASE | MySQL |
|---|---|
| SET SHOWPLAN ON | EXPLAIN |
| SET STATISTICS IO ON | EXPLAIN ANALYZE / PROFILING |