Lanzamiento de PostgreSQL 12

El equipo de PostgreSQL ha anunciado el lanzamiento de PostgreSQL 12, la última versión del sistema de gestión de bases de datos relacionales de código abierto.
PostgreSQL 12 ha mejorado significativamente el rendimiento de las consultas, especialmente cuando se trabaja con grandes volúmenes de datos, y también ha optimizado el uso del espacio en disco en general.

Las nuevas características incluyen:

  • implementación del lenguaje de consulta JSON Path (la parte más importante del estándar SQL/JSON);
  • optimización de la ejecución de expresiones de tabla comunes (CON);
  • soporte para columnas generadas

La comunidad también continúa trabajando en la extensibilidad y confiabilidad de PostgreSQL, desarrollando soporte para la internacionalización, capacidades de autenticación y brindando formas más sencillas de administrar el sistema.

Esta versión incluye la implementación de una interfaz para motores de almacenamiento conectables, que ahora permite a los desarrolladores crear sus propios métodos de almacenamiento de datos.

Mejoras de rendimiento

PostgreSQL 12 incluye importantes mejoras de rendimiento y mantenimiento para sistemas de indexación y partición.

Los índices de árbol B, el tipo de indexación estándar en PostgreSQL, se han optimizado en la versión 12 para cargas de trabajo que implican modificaciones frecuentes de índice. El uso del punto de referencia TPC-C para PostgreSQL 12 demostró una reducción promedio del 40 % en el uso de espacio y un aumento general en el rendimiento de las consultas.

Las consultas en tablas particionadas han recibido mejoras notables, especialmente para tablas que constan de miles de particiones que requieren trabajar solo con partes limitadas de las matrices de datos. Se ha mejorado el rendimiento de agregar datos a tablas particionadas usando INSERT y COPY, así como la capacidad de adjuntar una nueva partición sin bloquear consultas.

PostgreSQL 12 ha realizado mejoras adicionales en la indexación que afectan el rendimiento general, entre ellas:

  • gastos generales reducidos al generar WAL para los tipos de índice GiST, GIN y SP-GiST;
  • la capacidad de crear los llamados índices de cobertura (cláusula INCLUDE) en índices GiST;
  • la capacidad de realizar consultas de "vecino más cercano" (búsqueda k-NN) utilizando el operador de distancia (<->) y utilizando índices SP-GiST;
  • soporte para recopilar estadísticas de valores más comunes (MCV) mediante CREATE STATISTICS, lo que ayuda a obtener mejores planes de consulta cuando se utilizan columnas cuyos valores están distribuidos de manera desigual.

La compilación JIT usando LLVM, introducida en PostgreSQL 11, ahora está habilitada de forma predeterminada. La compilación JIT mejora el rendimiento cuando se trabaja con expresiones en cláusulas WHERE, listas de objetivos, agregados y algunas operaciones internas. Está disponible si ha compilado PostgreSQL con LLVM o está utilizando un paquete de PostgreSQL creado con LLVM habilitado.

Mejoras en las capacidades del lenguaje SQL y compatibilidad estándar.

PostgreSQL 12 introdujo la capacidad de consultar documentos JSON utilizando expresiones de ruta JSON definidas en el estándar SQL/JSON. Estas consultas pueden aprovechar los mecanismos de indexación existentes para documentos almacenados en formato JSONB para recuperar datos de manera eficiente.

Las expresiones de tabla comunes, también conocidas como consultas CON, ahora se pueden ejecutar automáticamente mediante sustitución en PostgreSQL 12, lo que a su vez puede ayudar a mejorar el rendimiento de muchas consultas existentes. En la nueva versión, una parte de sustitución de una consulta CON solo se puede ejecutar si no es recursiva, no tiene efectos secundarios y solo se hace referencia a ella una vez en una parte posterior de la consulta.

PostgreSQL 12 introduce soporte para "columnas generadas". Descrito en el estándar SQL, este tipo de columna calcula un valor en función del contenido de otras columnas de la misma tabla. En esta versión, PostgreSQL admite "columnas generadas almacenadas", donde el valor calculado se almacena en el disco.

Internacionalización

PostgreSQL 12 amplía el soporte para las intercalaciones ICU al permitir a los usuarios definir "clasificaciones no deterministas" que pueden, por ejemplo, permitir comparaciones que no distinguen entre mayúsculas y minúsculas o acentos.

Autentificación

PostgreSQL amplía su compatibilidad con métodos de autenticación sólidos con varias mejoras que brindan seguridad y funcionalidad adicionales. Esta versión presenta el cifrado del lado del cliente y del lado del servidor para la autenticación a través de interfaces GSSAPI, así como la capacidad de PostgreSQL para descubrir servidores LDAP cuando PostgreSQL se compila con OpenLDAP.

Además, PostgreSQL 12 ahora admite una opción de autenticación multifactor. El servidor PostgreSQL ahora puede requerir que el cliente proporcione un certificado SSL válido con el nombre de usuario correspondiente usando clientcert=verify-full, y combinar esto con un requisito de método de autenticación separado (por ejemplo, scram-sha-256).

administración

PostgreSQL 12 introdujo la capacidad de realizar reconstrucciones de índices sin bloqueo utilizando el comando REINDEX CONCURRENTLY. Esto permite a los usuarios evitar el tiempo de inactividad del DBMS durante largas reconstrucciones de índices.

Además, en PostgreSQL 12, puede habilitar o deshabilitar las sumas de verificación de páginas en un clúster apagado usando el comando pg_checksums. Anteriormente, las sumas de verificación de páginas, una característica que ayuda a verificar la integridad de los datos almacenados en el disco, solo se podían habilitar cuando el clúster PostgreSQL se inicializaba usando initdb.

Fuente: linux.org.ru

Añadir un comentario