I den första frågan ska mysql välja en delmängd från mdl_enrol
tabell och slutför mdl_user_enrolments
och mdl_userdata
in i minnet. Så du väljer mycket data i minnet. När du har gjort det - ansluter du till data. Om det inte finns tillräckligt med minne för att lägga all data tills den är sammanfogad och skickad tillbaka till klienten - då skapas en tillfällig tabell på hårddisken. Troligtvis är mysql Optimizer inte tillräckligt cool för att fixa ditt misstag och försöka förbättra exekveringsplanen. Det är därför det går långsamt.
För den andra frågan vet mysql exakt vad den behöver välja och väljer bara den lilla mängden nödvändig data. I det här scenariot är det möjligt att använda index (förutsatt att alla nödvändiga index har skapats). Så det går snabbt.