Volgens deze vraag , is ondersteuning voor tupels in MySQL niet geoptimaliseerd. Zoals @O.Jones in zijn commentaar schrijft, is de queryplanner in MySQL een enorm complex beest, en dingen die moeten werk gedraagt zich niet altijd zoals je zou verwachten.
Ik denk dat je tweede zoekopdracht sneller is omdat de eerste waar clausule dept_id in (101, 103)
vermindert de zoekruimte voor de tweede die de tuples gebruikt. De query-optimizer moet doe dit automagisch, maar in jouw voorbeeld doet hij dat in ieder geval niet.
Ik geloof niet dat de IN
clausule is het probleem - het is de tuple-vergelijking die de hele tabel scant en geen beschikbare indexen gebruikt.