(Hinweis:Diese Antwort verdeutlicht oder widerspricht einigen der bereits geschriebenen Kommentare.)
DELETEs
werden durch das Löschen der Indexeinträge verlangsamt. UPDATEs
kann verlangsamt werden -- es hängt davon ab, ob eine indizierte Spalte geändert wird.
SELECTs
, UPDATEs
, und DELETEs
, aber nicht INSERTs
, müssen die Zeile(n) finden; Dafür kann ein Index sehr hilfreich sein.
Ein INSERT
wird ein zusätzlicher Betrag verletzt, wenn es einen UNIQUE
gibt zu prüfender Index.
Sekundärschlüssel (in InnoDB), außer für UNIQUE
Schlüssel, werden aktualisiert (normalerweise wegen INSERT
und DELETEs
, aber möglicherweise wegen UPDATE
) 'verzögert' über den sogenannten "Änderungspuffer". Dadurch wird die Aktualisierung des Index effektiv hinausgezögert, der Index bleibt aber dennoch voll nutzbar.
Nichts davon wird durch die Reihenfolge der Spalten in einem Index beeinflusst. Wenn jedoch ein Index größer ist, als im RAM zwischengespeichert werden kann, kommt "Caching" ins Spiel, und I/O kann beteiligt sein oder auch nicht. Aber das ist ein anderes Thema.
Im Allgemeinen der Vorteil aus einem Index zum Lesen bei weitem überwiegt die Verlangsamung für Schreibvorgänge.