Lanzamiento de PostgreSQL 17
(postgresql.org)- PostgreSQL 17 incluye mejoras importantes de rendimiento, mejoras en la gestión de memoria, optimización del acceso al almacenamiento, mejoras para cargas de trabajo con alta concurrencia, mayor velocidad en cargas masivas y exportaciones, y mejoras en la ejecución de consultas sobre índices
Mejoras de rendimiento en todo el sistema
- Se mejoró la estructura interna de memoria del proceso
vacuumde PostgreSQL, esencial para el funcionamiento normal, reduciendo el uso de memoria hasta 20 veces- Esto acelera
vacuumy reduce el uso de recursos compartidos, dejando más recursos disponibles para las cargas de trabajo
- Esto acelera
- Se siguió mejorando el rendimiento de la capa de I/O
- Las mejoras en el procesamiento de Write-Ahead Log (WAL) muestran hasta 2 veces más rendimiento de escritura en cargas de trabajo de alta concurrencia
- Una nueva interfaz de streaming I/O aumenta la velocidad de los escaneos secuenciales (leer todos los datos de una tabla) y la velocidad de actualización de estadísticas del plan de ejecución del comando
ANALYZE
- Las mejoras de rendimiento también se extienden a la ejecución de consultas
- Se mejoró el rendimiento de las consultas con cláusulas
INque usan índices B-tree (el método de indexación predeterminado de PostgreSQL) - Se admite la construcción paralela en índices BRIN
- Se mejoró el rendimiento de las consultas con cláusulas
- Incluye varias mejoras para la planificación de consultas
- Optimización para restricciones
NOT NULL - Mejoras en el procesamiento de expresiones comunes de tabla (consultas
WITH)
- Optimización para restricciones
- Se amplía el soporte de SIMD (Single Instruction/Multiple Data) para acelerar cálculos, como el uso de AVX-512 en la función
bit_count
Expansión aún mayor de la experiencia para desarrolladores
- PostgreSQL fue la primera base de datos relacional en agregar soporte para JSON (2012)
- En PostgreSQL 17, se amplía todavía más la implementación del estándar SQL/JSON
JSON_TABLEpermite convertir datos JSON en tablas estándar de PostgreSQL- Soporte para constructores SQL/JSON (
JSON,JSON_SCALAR,JSON_SERIALIZE) y funciones de consulta (JSON_EXISTS,JSON_QUERY,JSON_VALUE) - Se agregan expresiones
jsonpathenfocadas en convertir datos JSON a tipos de datos nativos de PostgreSQL (números, booleanos, cadenas, fecha/hora)
- El comando
MERGEagrega la cláusulaRETURNINGy la capacidad de actualizar vistas - Mejoras en carga masiva y exportación de datos
- Hasta 2 veces más rendimiento al exportar filas grandes usando el comando
COPY - Mejor rendimiento de
COPYcuando la codificación de origen y destino coincide - Se agrega la opción
ON_ERRORpara continuar la importación incluso si ocurren errores de inserción
- Hasta 2 veces más rendimiento al exportar filas grandes usando el comando
- Se amplían las capacidades para gestionar datos distribuidos entre particiones e instancias remotas de PostgreSQL
- Se admite el uso de columnas
IDy restricciones de exclusión en tablas particionadas - Con
postgres_fdw, es posible empujar subconsultasEXISTSeINal servidor remoto
- Se admite el uso de columnas
- Incluye un proveedor de colación integrado, independiente de la plataforma e inmutable
- Ofrece una semántica de ordenamiento similar a la colación
C, pero usa codificación UTF-8 en lugar deSQL_ASCII - Al usar este nuevo proveedor de colación, las consultas basadas en texto devuelven los mismos resultados de ordenamiento sin importar dónde se ejecute PostgreSQL
- Ofrece una semántica de ordenamiento similar a la colación
Mejoras en la replicación lógica para alta disponibilidad y actualizaciones de versión mayor
- La replicación lógica se usa para transmitir datos en tiempo real
- En versiones anteriores, era necesario eliminar los slots de replicación lógica al actualizar una versión mayor, lo que obligaba a resincronizar los datos con los suscriptores después de la actualización
- Desde PostgreSQL 17, ya no es necesario eliminar los slots de replicación lógica, lo que simplifica el proceso de actualización
- Incluye controles de failover para la replicación lógica, lo que permite implementaciones más resilientes en entornos de alta disponibilidad
- Se introduce la herramienta de línea de comandos
pg_createsubscriber, que permite convertir una réplica física en una nueva réplica lógica
Más opciones para seguridad y gestión operativa
- PostgreSQL 17 amplía aún más la manera en que los usuarios gestionan todo el ciclo de vida del sistema de base de datos
- Se agrega una nueva opción TLS llamada
sslnegotiation, que permite realizar un handshake TLS directo al usar ALPN - Se agrega el rol predefinido
pg_maintain, que otorga permisos para realizar tareas de mantenimiento pg_basebackup, la utilidad de respaldo incluida en PostgreSQL, ahora admite respaldos incrementales y se agrega la utilidadpg_combinebackuppara reconstruir un respaldo completopg_dumpahora incluye una nueva opción,--filter, para seleccionar qué objetos incluir al crear un archivo de volcado- Mejoras en monitoreo y análisis
EXPLAINmuestra el tiempo dedicado a lecturas y escrituras de bloques I/O locales- Incluye dos nuevas opciones,
SERIALIZEyMEMORY: útiles para ver el tiempo dedicado a convertir datos para transmisión por red y la cantidad de memoria utilizada
- Se informa el progreso de la limpieza de índices
- Se agrega la vista del sistema
pg_wait_events, que al combinarse conpg_stat_activityofrece información sobre por qué una sesión activa está esperando
1 comentarios
Opiniones de Hacker News
Felicitaciones por el nuevo lanzamiento de PostgreSQL 17 junto con la mención de varias mejoras
pg_basebackupy adición de la utilidadpg_combinebackupOpiniones sobre la utilidad de las funciones JSON
Se comparte experiencia de uso de la función JSON_TABLE
jsonby escribir vistas para analizarlasSe mencionan mejoras de rendimiento y de UX en PostgreSQL 17
Impresiones sobre el registro de cambios
Se comparte la experiencia de haber migrado de Oracle a MSSQL por problemas de confianza en el software de código abierto
Agradecimiento por la mejora continua de Postgres y deseo de soporte oficial para la extensión Incremental View Maintenance (IVM)
Expectativa por el soporte para actualizaciones de versiones mayores de PostgreSQL
Deseo de que Postgres incorpore tablas versionadas por el sistema
Expectativa de que la mejora en la integración de JSON en Postgres permita un nuevo paradigma de frameworks web