(Nota:Esta resposta esclarece ou discorda de alguns dos comentários já escritos.)
DELETEs
ficam mais lentos devido à exclusão das entradas de índice. UPDATEs
pode ser desacelerado -- depende se uma coluna indexada é alterada. SELECTs
, UPDATEs
, e DELETEs
, mas não INSERTs
, precisa encontrar a(s) linha(s); para isso, um índice pode ajudar muito. Um
INSERT
é prejudicado uma quantia extra se houver um UNIQUE
índice para verificar. Chaves secundárias (no InnoDB), exceto para
UNIQUE
chaves, são atualizados (geralmente devido a INSERT
e DELETE
, mas possivelmente devido a UPDATE
) de forma 'atrasada' através do que é chamado de "Change Buffer". Isso efetivamente adia a atualização do índice, mas ainda mantém o índice totalmente utilizável. Nada disso é afetado pela ordem das colunas em um índice. No entanto, se um índice for maior do que pode ser armazenado em cache na RAM, o "cache" entra em ação e a E/S pode ou não estar envolvida. Mas isso é outro assunto.
Em geral, o benefício de um índice para leitura supera em muito a desaceleração para operações de gravação.