W pierwszym zapytaniu mysql powinien wybrać podzbiór z mdl_enrol
tabela i ukończ mdl_user_enrolments
i mdl_userdata
do pamięci. Więc wybierasz dużo danych w pamięci. Po wykonaniu tej czynności - dołączasz do danych. Jeśli nie ma wystarczającej ilości pamięci, aby umieścić wszystkie dane, dopóki nie zostaną one połączone i odesłane do klienta - tworzona jest tymczasowa tabela na dysku twardym. Najprawdopodobniej optymalizator mysql nie jest wystarczająco fajny, aby naprawić błąd i spróbować ulepszyć plan wykonania. Dlatego jest powolny.
Natomiast w przypadku drugiego zapytania mysql wie, co dokładnie musi wybrać i wybiera tylko niewielką ilość wymaganych danych. W tym scenariuszu możliwe jest użycie indeksów (zakładając, że zostały utworzone wszystkie potrzebne indeksy). Więc to jest szybkie.