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]';
EXPLAINDướ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.