Thời gian đọc: 4 phút
Câu lệnh EXPLAIN
trong MySQL là một công cụ mạnh mẽ giúp phân tích cách MySQL thực thi các câu lệnh SELECT
, DELETE
, INSERT
, và UPDATE
. Nó cung cấp thông tin chi tiết về cách MySQL xử lý các truy vấn, giúp bạn tối ưu hóa hiệu suất của chúng.
Để sử dụng câu lệnh EXPLAIN
, bạn chỉ cần thêm từ khóa EXPLAIN
trước câu lệnh SQL mà bạn muốn phân tích. Ví dụ:
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';
EXPLAIN
Dưới đây là các trường thông tin chính mà EXPLAIN
cung cấp và ý nghĩa của chúng:
SELECT
. Có thể là:
SIMPLE
: Câu lệnh đơn giản không có câu lệnh con.PRIMARY
: Câu lệnh SELECT
chính trong một truy vấn phức tạp.UNION
: Một phần của câu lệnh UNION
.SUBQUERY
: Câu lệnh con trong phần WHERE
của câu lệnh SELECT
.const
: Tốt nhất, chỉ tìm một bản ghi duy nhất.eq_ref
: Tìm kiếm một giá trị duy nhất.ref
: Tìm kiếm dựa trên chỉ mục.range
: Tìm kiếm trong một khoảng.index
: Quét toàn bộ chỉ mục.ALL
: Quét toàn bộ bảng, kém hiệu quả nhất.Using where
: Sử dụng điều kiện WHERE
.Using index
: Sử dụng chỉ mục để tìm dữ liệu.Using filesort
: Sắp xếp dữ liệu ngoài chỉ mục.Giả sử bạn có bảng users
và bạn thực hiện truy vấn sau:
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';
Kết quả có thể giống như sau:
id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
---|---|---|---|---|---|---|---|---|---|
1 | SIMPLE | users | ref | email_idx | email_idx | 102 | const | 1 | Using where |
Trong ví dụ trên:
type
là ref
, cho thấy MySQL đang sử dụng một chỉ mục để tìm dữ liệu.key
là email_idx
, cho thấy chỉ mục email_idx
được sử dụng.rows
là 1, cho thấy MySQL ước tính sẽ kiểm tra 1 bản ghi.Extra
là Using where
, cho thấy điều kiện WHERE
đang được áp dụng.EXPLAIN
để hiểu cách MySQL thực thi truy vấn của bạn và điều chỉnh cấu trúc hoặc chỉ mục để cải thiện hiệu suất.Câu lệnh EXPLAIN
là công cụ hữu ích để hiểu và tối ưu hóa các truy vấn SQL trong MySQL.