- PostgreSQL 16 mejora el rendimiento con avances notables en el paralelismo de consultas, la carga masiva de datos y la replicación lógica
- Introduce más sintaxis de SQL/JSON, nuevas estadísticas de monitoreo para cargas de trabajo y mayor flexibilidad para definir reglas de control de acceso
Mejoras de rendimiento
- El planificador de consultas ahora paraleliza joins FULL y RIGHT, genera planes más optimizados para consultas que usan cláusulas DISTINCT u ORDER BY, aprovecha el ordenamiento incremental en consultas SELECT DISTINCT y optimiza funciones de ventana
- Se mejoró la carga masiva con COPY tanto en trabajos individuales como concurrentes, y en algunos casos el rendimiento aumentó hasta un 300%
- Se introduce aceleración por CPU con SIMD en arquitecturas x86 y ARM para mejorar el rendimiento al procesar cadenas ASCII y JSON, así como en búsquedas de arreglos y subtransacciones
Replicación lógica
- Ahora es posible realizar replicación lógica desde instancias en espera (Standby), lo que habilita nuevas opciones de distribución de trabajo
- Replicar cambios aguas abajo usando un standby en lugar de un primario ocupado
- También mejora el rendimiento de la replicación lógica
- El suscriptor puede aplicar transacciones grandes usando workers en paralelo
- En tablas sin clave primaria, ahora es posible encontrar filas usando índices B-tree en lugar de escaneos secuenciales
- En ciertas condiciones, se puede acelerar la sincronización inicial de tablas usando formato binario
Experiencia para desarrolladores
- Se agregan más construcciones del estándar SQL/JSON, incluyendo constructores y predicados como JSON_ARRAY(), JSON_ARRAYAGG() e IS JSON
- Ahora se pueden usar guiones bajos en números de miles (5_432_000)
\bind se añade a psql para escribir consultas con parámetros y sustituirlos con variables
- Mejora el soporte para ordenamiento de texto
Monitoreo
- Se agrega
pg_stat_io, que ofrece métricas para analizar en detalle los patrones de acceso de I/O
- La vista
pg_stat_all_tables añade campos de marca de tiempo que registran cuándo se escaneó por última vez una tabla o índice
auto_explain ahora es más legible al registrar los valores pasados a sentencias parametrizadas
Control de acceso y seguridad
- Ofrece opciones más granulares para el control de acceso
- También mejora otras funciones de seguridad, incluyendo la administración de los archivos pg_hba.conf y pg_ident.conf, y la incorporación de varios parámetros de conexión de cliente orientados a la seguridad
1 comentarios
Opiniones de Hacker News
\bind, que está ganando popularidad porque permite ejecutar consultas parametrizadas igual que lo hacen las aplicaciones.debug_io_direct.