Sie haben außer dem Primärschlüssel keine Indizes. Sie müssen einen Index für Felder erstellen, die Sie in Ihrer WHERE-Anweisung verwenden. Ob Sie nur 1 Feld oder eine Kombination aus mehreren Feldern indizieren müssen, hängt von den anderen SELECTs ab, die Sie gegen diese Tabelle ausführen.
Denken Sie daran, dass REGEXP
kann überhaupt keine Indizes verwenden, LIKE
kann den Index nur verwenden, wenn er nicht mit einem Platzhalter beginnt (also LIKE 'a%'
kann Index verwenden, aber LIKE '%a'
kann nicht), größer als / kleiner als (<>) verwenden normalerweise auch keine Indizes.
So bleibt Ihnen der code
und check
Felder. Ich nehme an, dass viele Zeilen den gleichen Wert für check
haben werden , also würde ich den Index mit code
beginnen aufstellen. Indizes mit mehreren Feldern können nur in der Reihenfolge verwendet werden, in der sie definiert wurden...
Stellen Sie sich einen Index vor, der für die Felder code, check
erstellt wurde . Dieser Index kann in Ihrer Abfrage verwendet werden (wobei die WHERE-Klausel beide Felder enthält), auch in der Abfrage mit nur code
Feld, aber nicht in Abfrage mit nur check
Feld.
Ist es wichtig, ORDER BY id
? Wenn nicht, lassen Sie es weg, es verhindert den Sortierdurchlauf und Ihre Abfrage wird schneller beendet.