¡Ya está aquí PostgreSQL 18! Hace solo unos días salió la nueva versión y viene cargada con mejoras que pintan bastante bien para el futuro de nuestras bases de datos y aplicaciones. Trae novedades interesantes respecto a versiones anteriores, así que vale la pena echarle un ojo a este pequeño resumen de estas novedades.
Novedades y mejoras en PostgreSQL 18
Cambios en la arquitectura de procesos
Se han incorporado unos nuevos procesos denominados worker io (AIO). Estos procesos gestionan las operaciones de lectura de forma asincrónica, descargando las tareas de E/S de los procesos backend habituales, que mejoran el rendimiento de E/S para:

- Reducir tiempos de espera de E/S: Evita bloqueos iniciando operaciones antes de que los datos sean necesarios.
- Superponer E/S con trabajo útil: Permite que el backend continúe procesando otras operaciones mientras se realiza la E/S.
- Soporte para E/S directa (DIO): Omite la caché del kernel, reduce uso de CPU y mejora latencia. Al permitir realizar operaciones de E/S directamente entre la aplicación y el dispositivo de almacenamiento.
Hasta ahora el comportamiento por defecto era que los procesos de backend cuando emiten una llamada de E/S, la base de datos queda a la espera de la respuesta del sistema operativo o del disco, antes de realizar otra operación (método sync). Con esta mejora se intenta mitigar o reducir estos tiempos de espera (método worker).
Parámetros relacionados:
- io_method (sync, worker, io_uring) para controlar este comportamiento.
- io_workers para especificar el número de procesos io workers
- pg_aios, vista para observar las operaciones en tiempo real.
Mejoras para desarrolladores
Ahora se pueden crear columnas virtuales que permiten calcular valores en momento de ejecución sin tener que almacenar dicho valor en la tabla.
| CREATE TABLE pedidos ( id SERIAL PRIMARY KEY, coste DECIMAL(10,2), iva DECIMAL(5,4) DEFAULT 1.2100, — Columna virtual por defecto total DECIMAL(10,2) GENERATED ALWAYS AS (coste * iva)) ); |
Mejoras en la cláusula RETURNING para permitir un acceso más flexible a valores antiguos y nuevos en operaciones DML, lo que facilita el seguimiento de los cambios.
| UPDATE pedidos SET coste = 25 WHERE id = 1 RETURNING OLD.coste as coste_anterior, NEW.email as coste_nuevo; |
Mejoras en la seguridad
- La autenticación con contraseña MD5 ha quedado obsoleta y se ha sustituido por el método SCRAM-SHA-256, más seguro. El método MD5 seguirá funcionando (por compatibilidad), pero se espera que se elimine en la próxima major version
- Por defecto se añade la opción initdb –data-checksums durante la inicialización del cluster, que permite de forma predeterminada mejorar la validación de datos.
Sin embargo se puede desactivar esta verificación con la opción –no-data-checksums, que puede ser útil en las operaciones con pg_upgade (podría fallar si la opción no está habilitada en ambos cluster) - Se añade soporte al tipo OAuth authentication en el pg_hba.conf, lo que le permite conectarse a su base de datos utilizando tokens de proveedores de identidad como Google, Auth0 o el sistema SSO de su empresa en lugar de administrar las contraseñas de la base de datos.
No obstante, la compatibilidad con OAuth debe estar habilitada cuando se compila PostgreSQL
| # Ejemplo de entrada en el pg_hba.conf host myapp all 0.0.0.0/0 oauth issuer=https://provider.com scope=»openid» map=oauth_map |
Otras mejoras
pg_upgrade:
- Ahora se pueden mantener las estadísticas del planificador durante el proceso de upgrade, evitando tener que realizar nuevamente todo el proceso de ANALYZE.
- Se añade la nueva funcionalidad –swap, que permite mover los archivos y directorios del antiguo DATA al nuevo. Aunque con este método una vez se inicia la transferencia de archivos, el clúster antiguo sufrirá modificaciones destructivas y, por lo tanto, ya no será seguro iniciarlo.
Parámetros:
- log_line_prefix. Se añade la opción %L que permite generar la dirección IP del cliente
Conclusiones
PostgreSQL 18 sigue evolucionando en el motor de base de datos, con mejoras que no solo apuntan a optimizar el rendimiento, sino también a facilitar el trabajo de desarrolladores y administradores. En conjunto, PostgreSQL 18 no solo mejora lo que ya funcionaba bien, sino que abre nuevas posibilidades para construir sistemas más rápidos, seguros y mantenibles.
Incorpora soporte profesional en PostgreSQL para optimizar los procesos en tu empresa: Conocer más