sql >> Base de Datos >  >> RDS >> Mysql

Orden de indexación compuesta de InnoDB y rendimiento INSERT

(Nota:esta respuesta aclara o no está de acuerdo con algunos de los comentarios ya escritos).

DELETEs se ralentizan debido a la eliminación de las entradas del índice. UPDATEs puede ralentizarse, depende de si se cambia una columna indexada.

SELECTs , UPDATEs y DELETEs , pero no INSERTs , necesita encontrar la(s) fila(s); para esto, un índice puede ayudar mucho.

Un INSERT se daña una cantidad extra si hay un UNIQUE índice para comprobar.

Claves secundarias (en InnoDB), excepto para UNIQUE claves, se actualizan (generalmente debido a INSERTs y DELETEs , pero posiblemente debido a UPDATE ) de forma 'retrasada' a través de lo que se denomina "Change Buffer". Esto pospone efectivamente la actualización del índice, pero aún mantiene el índice totalmente utilizable.

Nada de esto se ve afectado por el orden de las columnas en un índice. Sin embargo, si un índice es más grande de lo que se puede almacenar en caché en la RAM, el "almacenamiento en caché" entra en juego y la E/S puede o no estar involucrada. Pero ese es otro tema.

En general, el beneficio de un índice de lectura supera con creces la ralentización de las operaciones de escritura.