Afhænger af, hvad du går efter, og hvad forespørgslen er.
Generelt for hver linje i EXPLAIN, der har en Using where
, skal du have det ved at bruge et indeks (possible keys
og keys
kolonne). Disse er dine filtre og inkluderer WHERE og ON. Når det står Using index
er endnu bedre. Det betyder, at der er et dækkende indeks, og MySQL kan hente data direkte fra indekset i stedet for at besøge rækken i tabeldataene.
Linjerne, hvor der ikke er Using where
, og det returnerer et stort antal rækker skal ses på. Disse er returnerende værdier for alle rækker i tabellen. Jeg ved ikke, hvad din forespørgsel er, så jeg ved ikke, om jeg skal være bekymret her. Prøv at filtrere resultatsættet for at reducere størrelsen og forbedre ydeevnen.
Du bør generelt prøve at undgå at se Using filesort
eller Using temporary
, selvom de kun er dårlige, hvis du ikke forventer dem.
Filsortering vises normalt med ORDER-klausulen. Du ønsker generelt, at MySQL skal bruge et dækkende indeks (Using index
), så rækkerne returneres allerede i rækkefølge fra serveren. Hvis de ikke er det, så skal MySQL bestille dem bagefter, ved hjælp af filesort.
Using temporary
kan være dårligt, når det refererer til afledte tabeller, fordi de ikke har indekser. Det ser ud til, at du eksplicit har oprettet en midlertidig tabel med indekser, så her er det ikke dårligt. Nogle gange er dit eneste valg at bruge en afledt tabel, og derfor Using temporary
.