Lanzamiento del DBMS PostgreSQL 15

Después de un año de desarrollo, se publicó una nueva rama estable del DBMS PostgreSQL 15. Las actualizaciones para la nueva rama se publicarán durante cinco años, hasta noviembre de 2027.

Principales novedades:

  • Se agregó soporte para el comando SQL "MERGE", que se asemeja a la expresión "INSERT... ON CONFLICT". MERGE le permite crear sentencias SQL condicionales que combinan operaciones INSERTAR, ACTUALIZAR y ELIMINAR en una sola expresión. Por ejemplo, al utilizar MERGE, puede fusionar dos tablas insertando registros faltantes y actualizando los existentes. FUSIONAR EN cuenta_cliente ca USANDO transacciones_recientes t ON t.customer_id = ca.customer_id CUANDO COINCIDE ENTONCES ACTUALIZAR ESTABLECER saldo = saldo + valor_transacción CUANDO NO COINCIDE ENTONCES INSERTAR (id_cliente, saldo) VALORES (t.id_cliente, t.valor_transacción);
  • Se han mejorado significativamente los algoritmos para ordenar datos en la memoria y en el disco. Dependiendo del tipo de datos, las pruebas muestran un aumento en la velocidad de clasificación del 25% al ​​400%.
  • Se han acelerado las funciones de ventana que utilizan número_fila(), rango(), rango_denso() y recuento().
  • Se ha implementado la posibilidad de ejecución paralela de consultas con la expresión “SELECT DISTINCT”.
  • El mecanismo para conectar tablas externas Foreign Data Wrapper (postgres_fdw) implementa soporte para confirmaciones asincrónicas además de la capacidad previamente agregada de procesar solicitudes asincrónicamente a servidores externos.
  • Se agregó la capacidad de usar algoritmos LZ4 y Zstandard (zstd) para comprimir registros de transacciones WAL, lo que, en algunas cargas de trabajo, puede mejorar el rendimiento y ahorrar espacio en disco simultáneamente. Para reducir el tiempo de recuperación después de una falla, se agregó soporte para la recuperación proactiva de páginas que aparecen en el registro WAL.
  • La utilidad pg_basebackup ha agregado soporte para la compresión del lado del servidor de archivos de respaldo usando los métodos gzip, LZ4 o zstd. Es posible utilizar sus propios módulos para archivar, lo que le permite prescindir de la necesidad de ejecutar comandos de shell.
  • Se han agregado una serie de nuevas funciones para procesar cadenas usando expresiones regulares: regexp_count(), regexp_instr(), regexp_like() y regexp_substr().
  • Se ha agregado la capacidad de agregar tipos de rango múltiple (“multirange”) a la función range_agg().
  • Se agregó el modo security_invoker, que le permite crear vistas que se ejecutan como el usuario que llama en lugar del creador de la vista.
  • Para la replicación lógica, se ha implementado soporte para filtrar filas y especificar listas de columnas, lo que permite al remitente seleccionar un subconjunto de datos de la tabla para la replicación. Además, la nueva versión simplifica la gestión de conflictos, por ejemplo, ahora es posible omitir transacciones conflictivas y desactivar automáticamente una suscripción cuando se detecta un error. La replicación lógica permite el uso de confirmaciones de dos fases (2PC).
  • Se ha agregado un nuevo formato de registro: jsonlog, que guarda información en forma estructurada utilizando el formato JSON.
  • El administrador tiene la capacidad de delegar derechos individuales a los usuarios para cambiar ciertos parámetros de configuración del servidor PostgreSQL.
  • La utilidad psql ha agregado soporte para buscar información sobre configuraciones (pg_settings) usando el comando “\dconfig”.
  • Se garantiza el uso de memoria compartida para acumular estadísticas sobre el funcionamiento del servidor, lo que permite deshacerse de un proceso separado de recopilación de estadísticas y reinicio periódico del estado en el disco.
  • Se ha proporcionado la capacidad de utilizar las configuraciones regionales predeterminadas de ICU, “ICU Collation”; anteriormente, solo se podían usar configuraciones regionales libc como configuración regional predeterminada.
  • Se ha propuesto una extensión incorporada pg_walinspect, que le permite inspeccionar el contenido de archivos con registros WAL mediante consultas SQL.
  • Para el esquema público, a todos los usuarios, con excepción del propietario de la base de datos, se les ha revocado su autoridad para ejecutar el comando CREATE.
  • Se eliminó la compatibilidad con Python 2 en PL/Python y se eliminó el obsoleto modo de copia de seguridad exclusivo.

Además: de 19:00 a 20:00 (MSK) habrá un seminario web en el que se discutirán los cambios en la nueva versión con Pavel Luzanov (Postgres Professional). Para aquellos que no pueden unirse a la transmisión, está abierta la grabación del informe de junio de Pavel “PostgreSQL 15: MERGE y más” en PGConf.Russia.

Fuente: opennet.ru

Añadir un comentario