66.7. Tuplas solo en montón (HOT - Heap-Only Tuples) #

Para permitir una alta concurrencia, PostgreSQL utiliza el control de concurrencia multiversión (MVCC) para almacenar las filas. Sin embargo, MVCC tiene algunas desventajas para las consultas de actualización. Específicamente, las actualizaciones requieren que se añadan nuevas versiones de las filas a las tablas. Esto también puede requerir nuevas entradas de índice para cada fila actualizada, y la eliminación de las versiones antiguas de las filas y sus entradas de índice puede resultar costosa.

Para ayudar a reducir la sobrecarga de las actualizaciones, PostgreSQL tiene una optimización llamada tuplas solo en montón (HOT). Esta optimización es posible cuando:

En tales casos, las tuplas solo en montón proporcionan dos optimizaciones:

Puedes aumentar la probabilidad de que haya suficiente espacio en la página para las actualizaciones HOT disminuyendo el fillfactor de una tabla. Si no lo haces, las actualizaciones HOT seguirán ocurriendo porque las nuevas filas migrarán de forma natural a nuevas páginas y a páginas existentes con suficiente espacio libre para las versiones de filas nuevas. La vista del sistema pg_stat_all_tables permite supervisar la ocurrencia de actualizaciones HOT y no HOT.