Kurze Antwort:
Indexe beschleunigen SELECT 's und verlangsamen INSERT 's.
Normalerweise ist es besser, Indizes zu haben, weil sie select beschleunigen mehr als dass sie insert verlangsamen .
Bei einem UPDATE der Index kann die Dinge ganz nach oben beschleunigen wenn ein indiziertes Feld im WHERE verwendet wird -Klausel und verlangsamen die Dinge, wenn Sie update eines der indizierten Felder.
Woher wissen Sie, wann Sie einen Index verwenden sollten
Fügen Sie EXPLAIN hinzu vor Ihrem SELECT Anweisung.
So ähnlich:
EXPLAIN SELECT * FROM table1
WHERE unindexfield1 > unindexedfield2
ORDER BY unindexedfield3
Zeigt Ihnen, wie viel Arbeit MySQL für jedes der nicht indizierten Felder leisten muss.
Using Mit diesen Informationen können Sie entscheiden, ob es sich lohnt, Indizes hinzuzufügen oder nicht.
Explain kann Ihnen auch sagen, ob es besser ist, es zu löschen und zu indizieren
EXPLAIN SELECT * FROM table1
WHERE indexedfield1 > indexedfield2
ORDER BY indexedfield3
Wenn nur sehr wenige Zeilen ausgewählt sind oder MySQL sich zum Ignorieren entschieden hat den Index (das macht er von Zeit zu Zeit) dann können Sie den Index genauso gut löschen, weil es ist was Ihr insert verlangsamt s, beschleunigt aber nicht Ihre select 's.
Andererseits könnte es auch sein, dass Ihre select-Anweisung nicht schlau genug ist.
(Entschuldigung für die Komplexität in der Antwort, ich habe versucht, es einfach zu halten, aber es ist mir nicht gelungen).
Link:
MySQL-Indizes - was sind sie? die Best Practices?