- Es la adición de índice en el rápidamente cambiante de la columna como "lastUpdatedOn" la pena ?
- Cómo calcular el equilibrio ?
- Puede que alguien me apunte a la documentación oficial sobre cuándo y cómo hace MySQL reindexes en fila inserciones y actualizaciones en la columna indizada.
Si tiene un índice de un "cambiando rápidamente columna" es una cuestión de equilibrio.
Un UPDATE
necesidades para eliminar una entrada en el índice y añadir una nueva entrada en otros lugares en el índice.
Por otro lado, el índice puede acelerar en gran medida debido a que el índice.
Por favor, proporcione un ejemplo concreto para que podamos discutir las ventajas y desventajas más.
Regular noUNIQUE
los índices (en oposición a FULLTEXT
y SPATIAL
) se mantienen así:
Hay un "cambio de amortiguamiento" (qv) en el buffer_pool que mantiene el índice de actualizaciones que aún no han sido escritos en el disco.
Cuando un DELETE
se produce, se agrega una entrada para el Cambio de Tampón de decir que la entrada de índice debe ser eliminado.
Para UPDATE
dos entradas puede ser necesario poner en el CB.
Cuando un SELECT
se utiliza como un índice, se comprueba tanto el CB y el real, en el disco, BTree para el índice. De que Árbol se almacenan en caché (por bloques) en la buffer_pool. (Un bloque es de 16 kb y puede contener cientos(s) de entradas.)
La CB se vacían en el disco "en el fondo" o "como sea necesario". Que implica la obtención de un índice de bloque (a menos que ya en la caché), la actualización de algunas entradas (eliminar y/o agregar), y volver a escribir en el disco. Tanto la lectura y escritura en caché en el buffer_pool, por lo que sea o ninguno de los dos puede ser física I/O.
MySQL no es "reconstruir" un índice normal ("indexar"), excepto a través de ciertos ALTERs
o OPTIMIZE
. Es decir, todos los cambios se hacen sobre la marcha. La acción de la CB es transparente para el usuario.