Vì vậy, tôi luôn nghĩ rằng việc xem "Sử dụng ở đâu" trong cột phụ là một điều tốt. Tuy nhiên, tôi đã lên kế hoạch cho một bữa trưa túi màu nâu cho đồng nghiệp của mình trong việc giải thích EXPLAIN và bây giờ tôi không chắc lắm. Tài liệu MySQL nói điều này trong các ghi chú về "Sử dụng ở đâu":Tối ưu hóa MySQL: GIẢI THÍCH "Thêm" cột chứa "Sử dụng ở đâu"
Mệnh đề WHERE được sử dụng để hạn chế những hàng nào khớp với bảng tiếp theo hoặc gửi cho khách hàng. Trừ khi bạn có ý định cụ thể để tìm nạp hoặc kiểm tra tất cả các hàng từ bảng, bạn có thể có điều gì đó sai trong truy vấn của bạn nếu giá trị Extra không sử dụng ở đâu và kiểu nối bảng là TẤT CẢ hoặc chỉ mục. Thậm chí nếu bạn đang sử dụng chỉ mục cho tất cả các phần của mệnh đề WHERE, bạn có thể thấy Sử dụng vị trí nếu cột có thể là NULL.
Điều này khiến tôi tin rằng ngay cả khi mệnh đề WHERE chỉ chứa các phần của chỉ mục, MySQL vẫn sẽ kiểm tra các hàng nếu cột có giá trị NULL.
Điều đó có đúng không? Nếu vậy, tôi nên thay đổi các cột để không bao gồm NULL nếu tôi không cần nó? Tôi có thấy tăng tốc không?
tôi vừa thực hiện kiểm tra: thay đổi cột từ null thành không null sau đó "sử dụng vị trí" biến mất. – tomwang1013