Versión de PostgreSQL 15 DBMS

Despois dun ano de desenvolvemento, publicouse unha nova rama estable do DBMS PostgreSQL 15. As actualizacións para a nova rama publicaranse durante cinco anos ata novembro de 2027.

Principais novidades:

  • Engadido soporte para o comando SQL "MERGE", que se asemella á expresión "INSERT... ON CONFLICT". MERGE permítelle crear instrucións SQL condicionais que combinan operacións INSERT, UPDATE e DELETE nunha única expresión. Por exemplo, mediante MERGE, pode combinar dúas táboas inserindo os rexistros que faltan e actualizando os existentes. COMBINAR NA conta_cliente ca UTILIZANDO transaccións recentes t ON t.customer_id = ca.customer_id CANDO COINCIDE ENTONCES ACTUALIZAR SET balance = balance + transaction_value CANDO NON COINCITE ENTONCES INSERIR (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
  • Melloráronse significativamente os algoritmos para ordenar datos na memoria e no disco. Segundo o tipo de datos, as probas mostran un aumento da velocidade de clasificación do 25% ao 400%.
  • Axiláronse as funcións de fiestra que usan row_number(), rank(), dense_rank() e count().
  • Implementouse a posibilidade de execución paralela de consultas coa expresión “SELECT DISTINCT”.
  • O mecanismo para conectar táboas externas Foreign Data Wrapper (postgres_fdw) implementa compatibilidade para commits asíncronos ademais da capacidade engadida anteriormente para procesar solicitudes asincrónicas a servidores externos.
  • Engadiuse a posibilidade de usar os algoritmos LZ4 e Zstandard (zstd) para comprimir os rexistros de transaccións WAL, que, baixo algunhas cargas de traballo, poden mellorar o rendemento e aforrar espazo no disco ao mesmo tempo. Para reducir o tempo de recuperación despois dun fallo, engadiuse soporte para a recuperación proactiva das páxinas que aparecen no rexistro de WAL.
  • A utilidade pg_basebackup engadiu soporte para a compresión do servidor de ficheiros de copia de seguranza mediante os métodos gzip, LZ4 ou zstd. É posible usar os seus propios módulos para arquivar, o que lle permite facer sen necesidade de executar comandos de shell.
  • Engadíronse unha serie de novas funcións para procesar cadeas usando expresións regulares: regexp_count(), regexp_instr(), regexp_like() e regexp_substr().
  • Engadiuse a capacidade de agregar tipos multirango ("multirango") á función range_agg().
  • Engadiuse o modo security_invoker, que che permite crear vistas que se executan como o usuario que chama en lugar de como o creador da vista.
  • Para a replicación lóxica, implementouse soporte para filtrar filas e especificar listas de columnas, o que permite que o remitente seleccione un subconxunto de datos da táboa para a replicación. Ademais, a nova versión simplifica a xestión de conflitos, por exemplo, agora é posible omitir transaccións en conflito e desactivar automaticamente unha subscrición cando se detecta un erro. A replicación lóxica permite o uso de confirmacións de dúas fases (2PC).
  • Engadiuse un novo formato de rexistro: jsonlog, que garda a información nun formulario estruturado utilizando o formato JSON.
  • O administrador ten a capacidade de delegar dereitos individuais aos usuarios para cambiar certos parámetros de configuración do servidor PostgreSQL.
  • A utilidade psql engadiu compatibilidade para buscar información sobre a configuración (pg_settings) mediante o comando "\dconfig".
  • O uso da memoria compartida está garantido para acumular estatísticas sobre o funcionamento do servidor, o que permite desfacerse dun proceso separado de recollida de estatísticas e restablecer periodicamente o estado no disco.
  • Proporcionouse a posibilidade de usar os locais predeterminados da ICU "ICU Collation"; anteriormente, só se podían usar os locais de libc como configuración predeterminada.
  • Propúxose unha extensión integrada pg_walinspect, que lle permite inspeccionar o contido dos ficheiros con rexistros WAL mediante consultas SQL.
  • Para o esquema público, todos os usuarios, a excepción do propietario da base de datos, revogouse a súa autoridade para executar o comando CREATE.
  • Eliminouse a compatibilidade con Python 2 en PL/Python. Eliminouse o modo de copia de seguranza exclusivo obsoleto.

Adición: De 19:00 a 20:00 horas (MSK) haberá un webinar para discutir os cambios na nova versión con Pavel Luzanov (Postgres Professional). Para aqueles que non poidan unirse á transmisión, está aberta a gravación do informe de xuño de Pavel "PostgreSQL 15: MERGE and more" en PGConf.Russia.

Fonte: opennet.ru

Engadir un comentario