Du har ingen indekser udover den primære nøgle. Du skal lave indeks på felter, som du bruger i din WHERE-sætning. Hvis du kun skal indeksere 1 felt eller en kombination af flere felter afhænger af de andre SELECT'er, du vil køre mod den tabel.
Husk at REGEXP
kan slet ikke bruge indekser, LIKE
kan kun bruge indeks, når det ikke begynder med jokertegn (så LIKE 'a%'
kan bruge indeks, men LIKE '%a'
kan ikke), større end / mindre end (<>) bruger normalt heller ikke indekser.
Så du står tilbage med code
og check
felter. Jeg formoder, at mange rækker vil have den samme værdi for check
, så jeg ville begynde indekset med code
Mark. Multifeltindekser kan kun bruges i den rækkefølge, de er defineret i...
Forestil dig et indeks oprettet for felter code, check
. Dette indeks kan bruges i din forespørgsel (hvor WHERE-sætningen indeholder begge felter), også i forespørgslen med kun code
felt, men ikke i forespørgsel med kun check
felt.
Er det vigtigt at ORDER BY id
? Hvis ikke, så udelad det, det vil forhindre sorteringen, og din forespørgsel afsluttes hurtigere.