sql >> Database teknologi >  >> RDS >> Mysql

Simpel MySQL-underforespørgselsydeevne

I den første forespørgsel skal mysql vælge et undersæt fra mdl_enrol tabel og fuldfør mdl_user_enrolments og mdl_userdata ind i hukommelsen. Så du vælger en masse data i hukommelsen. Når du har gjort det - tilslutter du dig dataene. Hvis der ikke er nok hukommelse til at lægge alle data, indtil de er sammenføjet og sendt tilbage til klienten - så oprettes en midlertidig tabel på harddisken. Mest sandsynligt er mysql optimizer ikke cool nok til at rette din fejl og prøve at forbedre eksekveringsplanen. Derfor går det langsomt.

Mens mysql for den anden forespørgsel ved, hvad den præcis skal vælge og kun vælger den lille mængde nødvendige data. I dette scenarie er det muligt at bruge indekser (forudsat at alle de nødvendige indekser er blevet oprettet). Så det er hurtigt.




  1. Hvordan bruger man REGEXP med escape-sekvenser som ordgrænse?

  2. Udforskning af SQL Server 2016 Query Store GUI

  3. Neo4j - Opret en node ved hjælp af Cypher

  4. Sådan får du det korte månedsnavn fra en dato i MySQL