Menurut pertanyaan ini , dukungan untuk tupel di MySQL tidak dioptimalkan. Seperti yang ditulis @O.Jones dalam komentarnya, perencana kueri di MySQL adalah binatang yang sangat kompleks, dan hal-hal yang seharusnya pekerjaan tidak selalu berperilaku seperti yang Anda harapkan.
Saya yakin kueri kedua Anda lebih cepat karena klausa pertama where dept_id in (101, 103)
mengurangi ruang pencarian untuk yang kedua yang menggunakan tupel. Pengoptimal kueri harus lakukan ini secara otomatis, tetapi setidaknya dalam contoh Anda tidak melakukannya.
Saya tidak percaya IN
klausa adalah masalahnya - ini adalah perbandingan Tuple yang memindai seluruh tabel dan tidak menggunakan indeks yang tersedia.