(Uwaga:ta odpowiedź wyjaśnia lub nie zgadza się z niektórymi już napisanymi komentarzami.)
DELETEs
są spowolnione z powodu usunięcia wpisów indeksu. UPDATEs
może spowolnić — zależy to od tego, czy indeksowana kolumna została zmieniona.
SELECTs
, UPDATEs
i DELETEs
, ale nie INSERTs
, trzeba znaleźć wiersze; w tym celu indeks może bardzo pomóc.
INSERT
ucierpi o dodatkową kwotę, jeśli istnieje UNIQUE
indeks do sprawdzenia.
Klucze pomocnicze (w InnoDB), z wyjątkiem dla UNIQUE
klucze są aktualizowane (zwykle z powodu INSERTs
i DELETE
, ale prawdopodobnie z powodu UPDATE
) w sposób „opóźniony” poprzez tzw. „Bufor zmian”. To skutecznie opóźnia aktualizację indeksu, ale nadal utrzymuje go w pełni użytecznym.
Na żaden z nich nie ma wpływu kolejność kolumn w indeksie. Jednakże, jeśli indeks jest większy niż może być buforowany w pamięci RAM, w grę wchodzi „buforowanie” i we/wy może, ale nie musi być zaangażowane. Ale to już inny temat.
Ogólnie korzyść z indeksu do czytania znacznie przeważa spowolnienie operacji zapisu.