14 puntos por GN⁺ 2023-09-15 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2023-09-15
Opiniones de Hacker News
  • El lanzamiento de PostgreSQL 16 se compara con un logro importante como un alunizaje, debido a la cantidad de trabajo no remunerado y reflexión que implica mantener un gran proyecto de código abierto durante décadas.
  • Quien comenta elogia al equipo de PostgreSQL y subraya la importancia de la infraestructura de software, comparándola con infraestructura física como puentes y carreteras.
  • PostgreSQL 16 introdujo la nueva función \bind, que está ganando popularidad porque permite ejecutar consultas parametrizadas igual que lo hacen las aplicaciones.
  • La incorporación de constructores y funciones de identidad SQL/JSON se considera una mejora en la calidad de vida en PostgreSQL 16.
  • Hay expectativa por la función de I/O directa, que actualmente está detrás de la configuración debug_io_direct.
  • Hay una pregunta sobre las mejoras a la función "vacuum", usada para optimizar el rendimiento de la base de datos.
  • Hay una pregunta sobre si se está considerando cifrado transparente por defecto para futuras versiones.
  • Un usuario expresa entusiasmo por la nueva versión, pero menciona que instaló PostgreSQL 15 en el Debian más reciente y que quizá deba investigar las nuevas funciones que podrían serle útiles.