V prvním dotazu by měl mysql vybrat podmnožinu z mdl_enrol
tabulku a dokončit mdl_user_enrolments
a mdl_userdata
do paměti. Vyberete tedy hodně dat v paměti. Poté, co to uděláte - připojíte data. Pokud není dostatek paměti pro uložení všech dat, dokud nebudou spojena a odeslána zpět klientovi, vytvoří se dočasná tabulka na pevném disku. Optimalizátor mysql s největší pravděpodobností není dostatečně cool, aby napravil vaši chybu a pokusil se vylepšit plán provádění. Proto je pomalý.
Zatímco u druhého dotazu mysql ví, co přesně potřebuje vybrat, a vybere jen malé množství požadovaných dat. V tomto scénáři je možné použít indexy (za předpokladu, že byly vytvořeny všechny potřebné indexy). Takže je to rychlé.