(Забележка:Този отговор изяснява или не е съгласен с някои от вече написаните коментари.)
DELETEs
се забавят поради изтриване на записите в индекса. UPDATEs
може да се забави -- зависи от това дали е променена индексирана колона.
SELECTs
, UPDATEs
и DELETEs
, но не и INSERTs
, трябва да намерите реда(овете); за това един индекс може да помогне много.
INSERT
се наранява с допълнителна сума, ако има UNIQUE
индекс за проверка.
Вторични ключове (в InnoDB), освен за UNIQUE
ключове, се актуализират (обикновено поради INSERT
и DELETEs
, но вероятно поради UPDATE
) по „забавен“ начин чрез така наречения „Буфер за промяна“. Това на практика отлага актуализирането на индекса, но все пак поддържа индекса напълно използваем.
Нищо от това не се влияе от реда на колоните в индекса. Въпреки това, ако индексът е по-голям, отколкото може да бъде кеширан в RAM, "кеширането" влиза в действие и I/O може или не може да бъде включен. Но това е друга тема.
Като цяло ползата от индекс за четене далеч надхвърля забавянето на операциите за запис.