Lanzamiento de la base de datos PostgreSQL 15

Después de un año de desarrollo, se ha publicado una nueva rama estable de la base de datos PostgreSQL 15. Las actualizaciones para esta nueva rama se publicarán durante cinco años hasta noviembre de 2027.

Novedades principales:

  • Se ha añadido soporte para el comando SQL 'MERGE', que recuerda a la expresión 'INSERT … ON CONFLICT'. MERGE permite crear expresiones SQL condicionales que combinan en una sola expresión las operaciones INSERT, UPDATE y DELETE. Por ejemplo, mediante MERGE se puede organizar la fusión de dos tablas, insertando registros faltantes y actualizando los existentes. MERGE INTO customer_account ca USING recent_transactions t ON t.customer_id = ca.customer_id WHEN MATCHED THEN UPDATE SET balance = balance + transaction_value WHEN NOT MATCHED THEN INSERT (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
  • Se han mejorado significativamente los algoritmos de ordenación de datos en memoria y en disco. Dependiendo del tipo de datos, se observa un aumento en la velocidad de ordenación de entre 25% a 400% en las pruebas.
  • Se ha acelerado el rendimiento de las funciones de ventana utilizando row_number(), rank(), dense_rank() y count().
  • Se ha implementado la posibilidad de ejecución paralela de consultas con la expresión 'SELECT DISTINCT'.
  • En el mecanismo de conexión de tablas externas Foreign Data Wrapper (postgres_fdw) se ha añadido soporte para confirmaciones asíncronas además de la capacidad previamente añadida de procesamiento asíncrono de consultas a servidores externos.
  • Se ha añadido la capacidad de aplicar los algoritmos LZ4 y Zstandard (zstd) para la compresión de los registros WAL de transacciones, lo que en ciertas cargas permite mejorar el rendimiento y ahorrar espacio en disco al mismo tiempo. Para reducir el tiempo de recuperación después de un fallo, se ha añadido soporte para la extracción anticipada de páginas que aparecen en el registro WAL.
  • Se añadió soporte para la compresión de archivos con copias de seguridad en la utilidad pg_basebackup mediante métodos gzip, LZ4 o zstd. Se proporciona la posibilidad de usar módulos propios para la archivación, lo que permite evitar la necesidad de ejecutar comandos de shell. servidoresSe ha añadido una serie de nuevas funciones para el procesamiento de cadenas utilizando expresiones regulares: regexp_count(), regexp_instr(), regexp_like() y regexp_substr().
  • En la función range_agg() se ha añadido la posibilidad de agregar tipos de múltiples rangos ('multirange').
  • Se ha añadido el modo security_invoker, que permite crear vistas que se ejecutan con los derechos del usuario que las llama, en lugar del creador de la vista.
  • Se ha añadido el modo security_invoker, que permite crear vistas que se ejecutan con los derechos del usuario que las llama, en lugar del creador de la vista.
  • Se ha implementado soporte para la filtración de filas y la asignación de listas de columnas en la replicación lógica, lo que permite al remitente seleccionar un subconjunto de datos de una tabla para replicar. Además, en la nueva versión se ha simplificado la gestión de conflictos, por ejemplo, existe la posibilidad de omitir transacciones en conflicto y desactivar automáticamente la suscripción al detectar un error. Se permite el uso de commits en dos fases (2PC) en la replicación lógica.
  • Se ha añadido un nuevo formato de registros: jsonlog, que guarda información en un formato estructurado utilizando JSON.
  • Se ha otorgado al administrador la opción de delegar a los usuarios poderes específicos para modificar ciertos parámetros. del servidor PostgreSQL.
  • Se ha añadido soporte en la utilidad psql para buscar información sobre configuraciones (pg_settings) utilizando el comando "\dconfig".
  • Se ha implementado el uso de memoria compartida para acumular estadísticas sobre el funcionamiento del servidor, lo que ha permitido eliminar un proceso separado para la recolección de estadísticas y el restablecimiento periódico de estado en disco.
  • Se ha proporcionado la opción de utilizar por defecto las configuraciones locales de ICU 'ICU Collation', antes solo era posible utilizar las configuraciones locales de libc como predeterminadas.
  • Se ha propuesto una extensión incorporada pg_walinspect que permite inspeccionar el contenido de los archivos de los registros WAL mediante consultas SQL.
  • Para el esquema public, se ha revocado el poder de ejecutar el comando CREATE a todos los usuarios, excepto al propietario de la base de datos.
  • En PL/Python se ha eliminado el soporte para Python 2. Se ha eliminado el modo de respaldo exclusivo obsoleto.

Nota: De 19:00 a 20:00 (MSK) se llevará a cabo un seminario web para discutir los cambios de la nueva versión con Pavel Luzanov (Postgres Professional). Para aquellos que no puedan unirse en vivo, está disponible la grabación de la presentación de junio de Pavel 'PostgreSQL 15: MERGE y más' en PGConf.Rusia.

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