Lanzamiento de la base de datos PostgreSQL 17.

Tras un año de desarrollo, se ha publicado la nueva rama estable de la base de datos PostgreSQL 17. Las actualizaciones para esta nueva rama se lanzarán durante cinco años hasta noviembre de 2029. El soporte para PostgreSQL 12.x, la rama más antigua en soporte, se finalizará el 14 de noviembre.

Novedades principales:

  • Al realizar la operación VACUUM (recolección de basura, limpieza y empaquetado del almacenamiento en disco), se ha implementado una nueva estructura de datos que consume hasta 20 veces menos memoria. La transición a esta nueva estructura ha permitido acelerar las operaciones VACUUM y reducir el consumo de recursos compartidos.
  • Se ha continuado la optimización del rendimiento de entrada/salida. Gracias a la mejora del código para procesar el registro de escritura diferida WAL, se ha podido duplicar la capacidad de las operaciones de escritura en sistemas con una gran cantidad de consultas ejecutadas simultáneamente. Se ha propuesto una nueva interfaz de entrada/salida por flujo, que ha permitido aumentar la velocidad de ejecución secuencial de datos en tablas y acelerar la actualización de estadísticas para el planificador de consultas tras la ejecución de la operación ANALYZE.
  • Se ha mejorado el rendimiento de las consultas con la expresión “IN” cuando se utilizan índices basados en la estructura B-tree. Se ha implementado la capacidad de construcción paralela de índices BRIN (Block Range Index). En el planificador de consultas, se han optimizado las comprobaciones de “NOT NULL” y se ha acelerado el procesamiento de expresiones tabulares comunes (Common Table Expression, CTE) definidas mediante el comando SQL “WITH”. Se ha garantizado el uso de instrucciones de procesador vectorial (SIMD) para acelerar ciertos cálculos, por ejemplo, las instrucciones AVX-512 se utilizan para acelerar la función bit_count.
  • Se ha implementado soporte para nuevas funcionalidades para trabajar con el formato JSON, definidas en el estándar SQL/JSON. Se ha añadido la función JSON-TABLE para transformar datos del formato JSON a tablas normales de PostgreSQL, así como nuevos operadores jsonpath para convertir datos JSON a tipos de datos nativos de PostgreSQL. Se han propuesto nuevas funciones para crear (JSON, JSON_SCALAR y JSON_SERIALIZE) y consultar (JSON_EXISTS, JSON_QUERY y JSON_VALUE) datos en formato JSON.
  • Se han ampliado las capacidades del comando SQL «MERGE», que permite crear expresiones SQL condicionales que combinan en una sola expresión las operaciones INSERT, UPDATE y DELETE. Se ha añadido soporte para la expresión RETURNING, que permite calcular y devolver valores basados en filas añadidas, actualizadas o eliminadas. Se ha implementado soporte para la actualización de vistas.
  • Se han ampliado las capacidades de carga y exportación de datos en modo por lotes. En el comando COPY, se ha duplicado la velocidad de exportación de grandes filas, se ha optimizado la copia cuando coinciden las codificaciones de origen y destino, y se ha añadido la opción ON_ERROR, que permite continuar la importación después de errores al insertar datos.
  • Para las tablas particionadas, se ha añadido la posibilidad de utilizar columnas con identificadores únicos y soporte para la técnica de optimización de consultas llamada «Constraint exclusion».
  • En el mecanismo de conexión de tablas externas Foreign Data Wrapper (postgres_fdw), se ha implementado la posibilidad de transferir a un externo. servidor subconsultas «EXISTS» y «IN».
  • Se ha implementado un motor multiplataforma integrado para el tratamiento de las propiedades de localización «Collation», que se utilizan para establecer reglas de ordenación y métodos de comparación considerando el significado de los caracteres (por ejemplo, al ordenar valores numéricos se tiene en cuenta la presencia de un signo negativo y un punto antes del número, y diferentes formas de escritura, mientras que al comparar no se considera el registro de los caracteres y la presencia de un acento). El nuevo motor garantiza un comportamiento consistente al ordenar resultados de consultas, independientemente de la plataforma en la que se ejecute PostgreSQL.
  • En el mecanismo de replicación lógica, que permite retransmitir a otro servidor los cambios realizados en la base de datos durante la adición, eliminación o actualización de registros, se ha simplificado el proceso de actualización del SGBD. Anteriormente, al pasar a una nueva versión significativa, era necesario eliminar los slots de replicación lógica y volver a sincronizar los datos, pero ahora es posible evitar la eliminación de los slots. Para configuraciones de alta disponibilidad, se ha implementado la posibilidad de gestionar el conmutador a un servidor de respaldo (failover) para la replicación lógica. Se ha añadido una nueva utilidad pg_createsubscriber para convertir una réplica física en una nueva réplica lógica.
  • Se ha añadido una nueva opción «sslnegotiation» para el establecimiento directo de conexiones TLS seguras utilizando la extensión ALPN de TLS.
  • Se ha implementado un rol predefinido pg_maintain, que otorga al usuario el derecho a realizar operaciones relacionadas con el mantenimiento de la base de datos.
  • Se ha agregado soporte para copias de seguridad incrementales en la utilidad pg_basebackup, que se utiliza para crear copias de seguridad de la base de datos. Se ha propuesto una nueva utilidad pg_combinebackup para reconstruir una copia de seguridad completa a partir de un conjunto de copias de seguridad incrementales. En la utilidad pg_dump se ha añadido la opción «—filter» para seleccionar los objetos incluidos en el volcado.
  • Al analizar consultas con el comando SQL «EXPLAIN», se ha implementado la visualización del tiempo gastado en lectura y escritura de bloques locales durante la entrada/salida. También se han añadido dos nuevas opciones al comando «EXPLAIN»: «MEMORY» y «SERIALIZE», que permiten determinar el tamaño de la memoria utilizada y el tiempo dedicado a la conversión de datos para la transmisión por la red.
  • Se ha proporcionado una indicación del progreso de la operación VACUUM con índices.
  • Se ha añadido la vista del sistema pg_wait_events, que junto con la vista pg_stat_activity permite estudiar más a fondo las razones por las que las sesiones activas están en estado de espera.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster