Według to pytanie , obsługa krotek w MySQL nie jest zoptymalizowana. Jak pisze @O.Jones w swoim komentarzu, planer zapytań w MySQL to niezwykle złożona bestia i rzeczy, które powinny praca nie zawsze zachowuje się tak, jak można by się spodziewać.
Uważam, że drugie zapytanie jest szybsze, ponieważ pierwsza klauzula where dept_id in (101, 103)
zmniejsza przestrzeń wyszukiwania dla drugiego, który używa krotek. Optymalizator zapytań powinien zrób to automagicznie, ale przynajmniej w twoim przykładzie tego nie robi.
Nie wierzę w IN
problemem jest klauzula - jest to porównanie krotek, które skanuje całą tabelę i nie używa dostępnych indeksów.