Theo câu hỏi này , hỗ trợ cho các bộ giá trị trong MySQL không được tối ưu hóa. Như @ O.Jones viết trong nhận xét của mình, trình lập kế hoạch truy vấn trong MySQL là một con thú phức tạp cực kỳ và những thứ nên không phải lúc nào công việc cũng hoạt động như bạn mong đợi.
Tôi tin rằng truy vấn thứ hai của bạn nhanh hơn vì mệnh đề where đầu tiên dept_id in (101, 103)
giảm không gian tìm kiếm cho thứ hai sử dụng các bộ giá trị. Trình tối ưu hóa truy vấn nên thực hiện điều này một cách tự động, nhưng ít nhất trong ví dụ của bạn không làm như vậy.
Tôi không tin IN
mệnh đề là vấn đề - đó là so sánh tuple đang quét toàn bộ bảng và không sử dụng các chỉ mục có sẵn.