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

Từ khóa EXPLAIN trong MySQL: Chỉ giải thích plan, không thực thi truy vấn

Tạo bảng có index

mysql> CREATE TABLE DemoTable1375 (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> FirstName VARCHAR(20),
    -> INDEX FIRST_INDEX(FirstName)
    -> );
Query OK, 0 rows affected (0.73 sec)
mysql> INSERT INTO DemoTable1375(FirstName) VALUES('Chris'),('Bob'),('Sam'),('David');

Dữ liệu

mysql> SELECT * FROM DemoTable1375;
+----+-----------+
| Id | FirstName |
+----+-----------+
| 2  | Bob       |
| 1  | Chris     |
| 4  | David     |
| 3  | Sam       |
+----+-----------+

Dùng EXPLAIN

mysql> EXPLAIN SELECT * FROM DemoTable1375;

Kết quả phân tích

+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
| id | select_type | table         | partitions | type  | possible_keys | key         | key_len | ref  | rows | filtered | Extra       |
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+
| 1  | SIMPLE      | DemoTable1375 | NULL       | index | NULL          | FIRST_INDEX | 63      | NULL | 4    | 100.00   | Using index |
+----+-------------+---------------+------------+-------+---------------+-------------+---------+------+------+----------+-------------+

Kết luận: EXPLAIN không thực thi truy vấn, chỉ hiển thị kế hoạch thực thi (execution plan): loại join, index sử dụng, số hàng ước lượng, v.v. Để xem chi tiết hơn, dùng EXPLAIN ANALYZE (MySQL 8.0.18+).