MySQL-Indizes - wie viele sind genug?

Ich versuche, meinen MySQL-Server so zu optimieren, dass ich meine Einstellungen überprüfe, das Protokoll langsamer Abfragen analysiere und meine Abfragen nach Möglichkeit vereinfache.

Manchmal reicht es, wenn ich richtig indiziere, manchmal nicht. Ich habe irgendwo gelesen (bitte korrigieren Sie mich, wenn dies Dummheit ist), dass mehr Indizes, als ich brauche, den gleichen Effekt haben, als wenn ich keinen von Indizes habe.

Wie viele Indizes sind genug? Man kann sagen, es hängt von Hunderten von Faktoren ab, aber ich bin gespannt, wie ich meine aufräumen kannmysql-slow.log genug, um die Serverlast zu reduzieren.

Außerdem habe ich einige "interessante" Logeinträge wie diesen gesehen:

# Query_time: 0  Lock_time: 0  Rows_sent: 22  Rows_examined: 44
SELECT * FROM `categories` ORDER BY `orderid` ASC;

Die betreffende Tabelle enthält genau 22 Zeilen, wobei der Index eingestellt istorderid. Warum wird diese Abfrage doch im Protokoll angezeigt? Warum 44 Zeilen untersuchen, wenn es nur 22 enthält?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage