Actividades de mantenimiento de las bases de datos de PostgreSQL en Amazon RDS y Amazon Aurora para evitar problemas de rendimiento
Anuradha Chintha, Rajesh Madiwale y Srinivas Potlachervoo, Amazon Web Services (AWS)
Agosto de 2025 (historial de documentos)
La edición de Amazon Aurora compatible con PostgreSQL y Amazon Relational Database Service (Amazon RDS) para PostgreSQL son servicios de bases de datos relacionales completamente administrados para bases de datos de PostgreSQL. Estos servicios administrados liberan al administrador de la base de datos de muchas tareas de mantenimiento y administración. Sin embargo, algunas tareas de mantenimiento, como VACUUM, requieren una estrecha supervisión y una configuración que se ajuste al uso de la base de datos. En esta guía se describen las actividades de mantenimiento de PostgreSQL en Amazon RDS y Aurora.
Resultados empresariales específicos
El rendimiento de las bases de datos es una medida clave que sustenta el éxito de una empresa. Las actividades de mantenimiento que realiza en las bases de datos de Aurora compatible con PostgreSQL y Amazon RDS para PostgreSQL ofrecen las siguientes ventajas:
-
Ayuda a lograr un rendimiento óptimo de las consultas
-
Libera el espacio sobrecargado para que lo reutilicen en futuras transacciones
-
Evita el reinicio de las transacciones
-
Ayuda al optimizador a generar buenos planes
-
Garantiza un uso adecuado del índice
Control de simultaneidad multiversión (MVCC)
El mantenimiento de la base de datos de PostgreSQL requiere comprender el control de simultaneidad multiversión (MVCC), que es un mecanismo de PostgreSQL. Cuando se procesan varias transacciones simultáneamente en la base de datos, el MVCC garantiza la atomicidad y el aislamiento, que son dos características de las transacciones con atomicidad, coherencia, aislamiento y durabilidad (ACID). En el MVCC, cada operación de escritura genera una nueva versión de los datos y almacena la versión anterior. Los lectores y los escritores no se bloquean entre sí. Cuando una transacción lee datos, el sistema elige una de las versiones para aislar la transacción. PostgreSQL y algunas bases de datos relacionales utilizan una adaptación del MVCC llamada aislamiento de instantáneas (SI). Por ejemplo, Oracle implementa SI mediante segmentos de reversión. Durante una operación de escritura, Oracle escribe la versión antigua de los datos en un segmento de reversión y sobrescribe el área de datos con la versión nueva. Las bases de datos de PostgreSQL implementan SI mediante reglas de comprobación de la visibilidad para evaluar las versiones. Cuando se colocan datos nuevos en una página de tabla, PostgreSQL utiliza estas reglas para seleccionar la versión de los datos adecuada para una operación de lectura.
Al modificar los datos de una fila de la tabla, PostgreSQL utiliza el MVCC para mantener varias versiones de la fila. Durante las opciones UPDATE y DELETE que realiza en la tabla, la base de datos conserva las versiones antiguas de las filas para otras transacciones en ejecución que puedan necesitar una vista de los datos coherente. Estas versiones antiguas se llaman filas inactivas (tuplas). Las colecciones de tuplas inactivas producen sobrecarga. Una gran cantidad de sobrecarga en la base de datos puede provocar una serie de problemas, como una creación deficiente de planes de consultas, un rendimiento lento de las consultas y un mayor uso del espacio en disco para almacenar las versiones antiguas.
Para eliminar la sobrecarga y mantener una base de datos en buen estado, se tiene que realizar un mantenimiento periódico con estas actividades, que se analizan en las siguientes secciones: