Un comando update
debe recolocar las entradas del índice modificado para mantener el orden del índice. Para eso, la base de datos ha de eliminar la entrada antigua y agregar la nueva en su nueva ubicación. El tiempo de respuesta es casi el mismo que para un delete
y un insert
juntos.
El rendimiento de update
, tal como un insert
y un delete
, depende también del número de índices sobre la tabla. La única diferencia es que el comando update
no afecta necesariamente a todas las columnas porque por lo general sólo se modifican unas pocas columnas seleccionadas. En consecuencia, un comando update
no afecta necesariamente a todos los índices de la tabla, sino solamente a los que contienen las columnas modificadas.
La Figura 8.3 muestra el tiempo de respuesta para dos comandos update
: uno que modifica todas las columnas y afecta a todos los índices, y después, un segundo que modifica una sola columna afectando solamente a un índice.
Figura 8.3 Rendimiento del Update por número de índices y de columnas

Update
sobre todas las columnas muestra el mismo modelo que ya se ha observado en la seccion anterior: el tiempo de respuesta crece con cada índice adicional. El tiempo de respuesta del update
que afecta solamente a un índice no se incrementa mucho porque deja la mayoría de los índices sin cambios.
Para optimizar el rendimiento de update
, se deben analizar solamente de las columnas que han sido modificadas por el UPDATE. Eso es lógico si se escribe manualmente el comando update
. Sin embargo, las herramientas ORM
pueden generar comandos update
que actualizan siempre todas las columnas.
Por ejemplo, Hibernate hace eso cuando se deshabilita el
modo de UPDATE dinámico (del inglés, dynamic-update). Desde la versión 4.0, este modo se habilita por defecto.
Cuando se usan las herramientas ORM, es una buena práctica habilitar de vez en cuando el registro de sentencias (del inglés, SQL logging) en el entorno de desarrollo para validar las sentencias SQL generadas. La recomendación titulada “Habilitar el registro SQL” contiene un pequeño resumen de cómo habilitar el registro en algunas de las herramientas ORM más usadas.
Si te gusta mi manera de explicar, te encantará mi libro.
Piénsalo
¿Habrá algún caso en el que los comandos insert
o delete
no afecten a todos los índices de una tabla?