Jag tror att du har lite förvirring, du har en felaktig uppfattning, 'FINNS' fungerar snabbare än 'IN' och jag försöker få dig att förstå orsaken.
EXISTS returnerar en boolean och kommer att returnera en boolean vid den första matchen. Så om du har att göra med dubbletter/multiplar, kommer 'EXISTS' att vara snabbare att köra än 'IN' eller 'JOIN' beroende på data och behov.
Medan 'IN' är syntaktisk socker för OR-satser. Även om det är väldigt tillmötesgående, finns det problem med att hantera många värden för den jämförelsen (norr om 1 000). Vid dubbletter/multipler kontrollerar 'IN' alla värden som finns vilket naturligtvis tar mer tid att köra än 'FINNS', det är därför 'IN' alltid är jämförelsevis långsammare än 'FINNS'.
Jag hoppas att jag klargjorde din förvirring.