Search
Close this search box.

PostgreSQL 16 Liberado!

Actualizado el 15 septiembre, 2023 10:09:23

El 14 de septiembre de 2023, el Grupo de Desarrollo Global de PostgreSQL lanzó PostgreSQL 16, la última versión de su potente base de datos de código abierto.

PostgreSQL 16 presenta mejoras notables en el rendimiento, con avances significativos en la ejecución de consultas en paralelo, la carga eficiente de grandes volúmenes de datos y la replicación lógica.

Esta versión ofrece una serie de características tanto para desarrolladores como para administradores, como una sintaxis SQL/JSON más amplia, nuevas estadísticas para supervisar el rendimiento de las cargas de trabajo y una mayor flexibilidad en la definición de reglas de acceso para la gestión de políticas en entornos con gran cantidad de datos.

Dave Page, miembro del equipo central de PostgreSQL, comentó:

A medida que evolucionan los patrones de las bases de datos relacionales, PostgreSQL continúa mejorando su rendimiento en la búsqueda y gestión de datos a gran escala. PostgreSQL 16 brinda a los usuarios más opciones para escalabilidad de cargas de trabajo y nuevas herramientas para obtener información y optimizar la administración de datos.

PostgreSQL, reconocido por su fiabilidad y robustez, ha sido desarrollado durante más de 25 años por una comunidad global de programadores comprometidos con el código abierto.

Esta base de datos relacional de código abierto es la preferida por organizaciones de todos los tamaños debido a su versatilidad y confiabilidad.

INDICE

Mejoras en el rendimiento

PostgreSQL 16 trae notables mejoras de rendimiento a la ya eficaz funcionalidad de PostgreSQL.

En esta versión, el planificador de consultas (Query planner) ha sido optimizado para realizar uniones FULL y RIGHT de manera paralela.

También genera planes de consulta más eficientes para aquellas que involucran funciones de agregación (aggregate functions) con cláusulas DISTINCT u ORDER BY.

Además, ahora utiliza clasificaciones incrementales para consultas SELECT DISTINCT y optimiza las funciones de ventana para un funcionamiento más eficiente.

Se han perfeccionado las “anti-unionesRIGHT y OUTER, lo que facilita a los usuarios identificar filas ausentes en una tabla unida.

En el ámbito de la carga masiva, PostgreSQL 16 presenta mejoras notables al utilizar la función COPY tanto en operaciones individuales como concurrentes, con mejoras de rendimiento de hasta un 300% en ciertos casos, según las pruebas.

Esta versión también introduce el soporte para equilibrar la carga en clientes que emplean libpq y refinamientos en la estrategia de vaciado, lo que reduce la necesidad de congelar tablas por completo.

Además, PostgreSQL 16 incorpora aceleración de CPU mediante SIMD en arquitecturas x86 y ARM, lo que conlleva mejoras de rendimiento en el procesamiento de cadenas ASCII y JSON, así como en búsquedas de matrices y subtransacciones.

Replicación lógica

La replicación lógica en PostgreSQL 16 ofrece a los usuarios la capacidad de compartir datos con otras instancias de PostgreSQL o suscriptores que comprenden el protocolo de replicación lógica de PostgreSQL.

Una novedad en PostgreSQL 16 es la posibilidad de realizar replicación lógica desde una instancia secundaria, lo que permite a esa instancia secundaria compartir cambios lógicos con otros servidores.

Esto abre nuevas oportunidades para los desarrolladores al distribuir la carga de trabajo, por ejemplo, utilizando una instancia secundaria para replicar cambios lógicos en sistemas posteriores, en lugar de depender de la instancia principal, que podría estar ocupada.

Además, PostgreSQL 16 ha implementado mejoras notables en el rendimiento de la replicación lógica.

Ahora, los suscriptores pueden aplicar transacciones grandes utilizando múltiples trabajadores en paralelo.

Para tablas sin una clave primaria, los suscriptores pueden aprovechar índices B-tree en lugar de exploraciones secuenciales para buscar filas, lo que acelera las operaciones.

En ciertas situaciones, los usuarios también pueden agilizar la sincronización inicial de tablas utilizando el formato binario.

La gestión del acceso a la replicación lógica se ha mejorado en PostgreSQL 16, con la introducción del nuevo rol predefinidopg_create_subscription“.

Este rol permite a los usuarios crear nuevas suscripciones lógicas de manera más eficiente.

Por último, PostgreSQL 16 da sus primeros pasos en la implementación de la replicación lógica bidireccional, lo que significa que se añade la capacidad de replicar datos entre dos tablas de distintos publicadores.

Para los Desarrolladores

PostgreSQL 16 trae algunas novedades en cuanto a la sintaxis SQL/JSON estándar.

Se han agregado nuevas funciones y predicados, como JSON_ARRAY(), JSON_ARRAYAGG(), y IS_JSON.

Además, esta versión permite utilizar guiones bajos como separadores de miles en números (por ejemplo, 5_432_000) y admite literales enteros no decimales, como 0x1538, 0o12470, y 0b1010100111000.

Para los desarrolladores que trabajan con PostgreSQL 16, se han incorporado nuevos comandos en psql.

Uno de ellos es \bind, que permite preparar consultas parametrizadas y luego usar \bind para asignar valores a esas variables, por ejemplo:

				
					SELECT $1::int + $2::int \bind 1 2 \g
				
			

En esta versión, también se ha mejorado el soporte general para collations de texto, que son reglas utilizadas para ordenar texto.

PostgreSQL 16 se compila con soporte de ICU de manera predeterminada, lo que significa que puede detectar automáticamente la configuración regional de ICU según el entorno.

Además, los usuarios tienen la posibilidad de definir sus propias reglas de collation de ICU personalizadas.

Monitoraje

Para optimizar el rendimiento de las cargas de trabajo en bases de datos, es esencial comprender cómo las operaciones de entrada y salida (E/S) afectan a su sistema.

En PostgreSQL 16, se ha introducido una nueva fuente de datos llamada pg_stat_io, que proporciona métricas importantes relacionadas con las operaciones de E/S.

Estas métricas son útiles para analizar en detalle cómo se accede a los datos a través de E/S.

Además, en esta versión se ha añadido un nuevo campo a la vista pg_stat_all_tables que registra la hora en que se realizó el último escaneo de una tabla o un índice.

PostgreSQL 16 también ha mejorado la legibilidad de auto_explain al registrar los valores utilizados en las consultas parametrizadas, y ha mejorado la precisión del algoritmo de seguimiento de consultas que utilizan las herramientas pg_stat_statements y pg_stat_activity.

Control de acceso y seguridad

PostgreSQL 16 ha mejorado sus opciones de control de acceso y ha fortalecido aún más su seguridad.

En esta versión, se han realizado mejoras en la administración de archivos como pg_hba.conf y pg_ident.conf.

Esto incluye la capacidad de utilizar expresiones regulares para hacer coincidir nombres de usuario y bases de datos, así como la posibilidad de incluir directivas para archivos de configuración externos.

Además, PostgreSQL 16 ha añadido varios parámetros de conexión de cliente que se centran en la seguridad.

Por ejemplo, ahora los clientes pueden especificar qué parámetros de autenticación están dispuestos a aceptar del servidor mediante la opción require_auth.

También se ha introducido sslrootcert=”system”, que indica a PostgreSQL que utilice el repositorio de autoridades de certificación (CA) de confianza proporcionada por el sistema operativo del cliente.

Además, esta versión ofrece soporte para la delegación de credenciales de Kerberos, lo que permite que las extensiones como postgres_fdw y dblink utilicen credenciales autenticadas para conectarse a servicios de confianza.

Sobre el mismo argumento...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Más leídos (últimos 30 días)

Archivo

Argumentos