sql >> Base de Datos >  >> RDS >> PostgreSQL

Las mejores características nuevas en PostgreSQL 14

Según StackOverflow, PostgreSQL es la base de datos de código abierto más popular, con más y más desarrolladores y administradores que desean trabajar con ella. PostgreSQL 14, la última versión lanzada en septiembre de 2021, tiene más de 200 mejoras y funciones nuevas, que se dividen en tres áreas:seguridad, rendimiento y supervisión.

A partir de la versión 1.9.2, lanzada a principios de este año, ClusterControl ahora es compatible con la última versión de PostgreSQL 14.

En esta publicación, veremos las funciones más notables, las principales actualizaciones y las mejoras disponibles en PostgreSQL 14.

Seguridad

El cambio de seguridad más significativo de PostgreSQL 14 es pasar a SCRAM como la autenticación predeterminada después de que se introdujera por primera vez la autenticación SCRAM-SHA-256 en PostgreSQL 10. SCRAM proporciona una solución mucho más simple y poderosa para regular el cumplimiento de los datos seguridad. La autenticación MD5 predeterminada anterior ha tenido algunas debilidades explotadas en el pasado.

Además de una autenticación mejorada, PostgreSQL 14 simplifica el proceso de asignación de capacidades de solo escritura y solo lectura a usuarios en tablas, vistas y esquemas mediante la introducción de dos funciones predefinidas, pg_write_all_data y pg_read_all_data. El rol anterior hace que sea conveniente crear privilegios de estilo superusuario. A pesar de ser conveniente para las actividades y el acceso, este tipo de cuenta debe usarse con moderación. El último rol lo hace útil para otorgar acceso de solo lectura a un usuario a todas las tablas, esquemas y vistas en la base de datos. Este rol tendrá acceso de lectura de forma predeterminada a cualquier tabla recién creada.

Rendimiento

Las corporaciones están procesando más y más datos, y la velocidad, el volumen y la variedad (las tres V de Big Data) no muestran signos de desaceleración. PostgreSQL 14 ha realizado algunos cambios muy significativos para poder escalar hacia arriba y hacia afuera para admitir estas cargas de trabajo y mejorar el rendimiento. Esto se puede agrupar mejor en las siguientes cinco áreas:

Escalabilidad y rendimiento

PostgreSQL 14 ofrece grandes logros en el rendimiento de eliminaciones y actualizaciones en tablas con una gran cantidad de particiones. Esto permite que las eliminaciones y actualizaciones en tablas particionadas utilicen la eliminación de particiones en tiempo de ejecución. Lo que es más importante, esta versión puede escalar a más particiones que antes, lo que permite que PostgreSQL haga frente a bases de datos mucho más grandes de lo que era posible anteriormente.

En la versión 14 de PostgreSQL, las particiones ahora también se pueden separar simultáneamente, lo que facilita la administración de grandes tablas de datos de series temporales. Esto es posible gracias a la nueva función date_bin(), que permite a los usuarios resumir datos de series temporales en intervalos de fechas mejor y más fácilmente.

PostgreSQL 14 agregó soporte para compresión LZ4 para TOAST. LZ4 utiliza la última tecnología de compresión y se enfoca en mejorar la velocidad de descompresión y compresión de datos de documentos. LZ4 mejorará las aplicaciones con documentos XML y JSON más grandes, y este algoritmo de compresión se puede configurar tanto a nivel de sistema como de columna.

Bases de datos distribuidas y cargas de trabajo

PostgreSQL 14 también ofrece mejoras en el escalado horizontal de una base de datos mediante la introducción de dos mejoras importantes en postgres_fdw (contenedor de datos externos) que son fundamentales para mejorar el rendimiento de las bases de datos distribuidas. Estos cambios admiten la inserción masiva de datos y exploraciones de tablas paralelas en tablas externas (cuando se establece async_capable).

El almacenamiento en caché de conexiones también mejora el rendimiento al permitir que las conexiones se abran entre transacciones. También podemos mencionar el modo de canalización de Libpd, que aumenta el rendimiento de las bases de datos distribuidas al permitir que se transmitan secuencias de cambios sin esperar la confirmación de la red en cada comando.

Manejabilidad 

PostgreSQL 14 también aborda el problema de la inflación del índice B-tree; los índices que se actualizan con frecuencia se hinchan con el tiempo debido a las tuplas muertas que se pueden eliminar ejecutando una aspiradora.

Debido a esto, una división de página irreversible puede ser causada por una inserción o actualización cuando la página se llena entre vacíos. Esta versión ha mejorado el proceso de vacío mediante la detección y eliminación de tuplas muertas entre vacíos (parámetro INDEX_CLEANUP establecido en Auto).

Otra mejora en el sistema de vacío es eliminar rápidamente las páginas eliminadas. En versiones anteriores, la eliminación de páginas eliminadas requería dos ciclos de vacío, primero marcando la página como eliminada y el segundo ciclo liberando ese espacio.

Ajuste del rendimiento de consultas e índices

La administración de índices en el ajuste de aplicaciones es otra mejora importante en PostgreSQL 14. En particular, REINDEX CONCURRENTLY y CREATE INDEX CONCURRENTLY permiten que varios comandos se ejecuten a la vez sin interferir entre sí. Más sobre índices, los índices BRIN se han vuelto más flexibles ya que pueden registrar numerosos valores mínimos/máximos por rango, lo cual es valioso para grupos de valores en cada rango de página. Además, los índices BRIN funcionan eficazmente con datos que no están bien localizados en el montón mediante el uso de filtros de floración.

La opción CONGELAR en el comando COPIAR se ha mejorado al actualizar los bits de visibilidad de la página en el rendimiento de carga de datos. COPY en modo binario ahora también es más rápido.

PostgreSQL 14 ha perfeccionado el paralelismo de consultas al agregar paralelismo de consultas a REFRESH MATERIALIZED VIEW y RETURN QUERY. Estas mejoras se implementaron en uniones de bucles anidados y escaneos secuenciales paralelos.

PostgreSQL 14 ha aumentado la cantidad de lugares en los que se pueden usar estadísticas extendidas para expresiones y estimación de cláusulas OR. A diferencia de antes, donde las estadísticas solo estaban en columnas, ahora está permitido en un grupo de expresiones. La vista del sistema pg_stats_ext_exprs informa dichas estadísticas.

Replicación lógica mejorada 

La replicación lógica se ha mejorado para permitir la transmisión de transacciones largas en curso a través de la API oa los suscriptores. En versiones anteriores, las transacciones más grandes que logical_decoding_work_mem se escribían en el disco hasta que la transacción se completaba antes de replicar la transacción al suscriptor. Con las nuevas mejoras implementadas, la replicación lógica maneja grandes volúmenes de declaraciones DDL de manera más eficiente.

Después de cada comando, la replicación lógica escribe mensajes de invalidación de caché en WAL para procesarlos mediante la transmisión de transacciones en curso. Este proceso genera importantes beneficios de rendimiento.

Supervisión 

Una de las palabras de moda más importantes de 2022 es el monitoreo, ya que los administradores y desarrolladores quieren más información sobre el rendimiento a lo largo del tiempo. PostgreSQL 14 ha introducido nuevas características para ayudar con el monitoreo. El cambio más significativo de todos ellos es el traslado del sistema hash de consulta de pg_stat_statement a la base de datos central. Se ha permitido el monitoreo de consultas en varios sistemas PostgreSQL y funciones de registro mediante el uso de una única ID.

Esta versión también ha introducido los siguientes nuevos parámetros de monitoreo:

  1. Idle_session_timeout

  2. REINDEX en índices secundarios de una tabla particionada

  3. Maintenance_io_concurrency

  4. Pg_stat_progress_copy

  5. Pg_stat_wal

Actualización a PostgreSQL 14

Si desea actualizar su versión actual de PostgreSQL a la versión 14, tiene tres opciones principales que realizarán esta tarea:

  1. Pg_dumpall:Es una herramienta de copia de seguridad lógica que le permite volcar sus datos y restaurarlos en el nuevo PostgreSQL versión. Aquí tendrá un período de inactividad que variará según el tamaño de sus datos. Debe detener el sistema o evitar nuevos datos en el nodo principal, ejecutar pg_dumpall, mover el volcado generado al nuevo nodo de la base de datos y restaurarlo. Durante este tiempo, no puede escribir en su base de datos principal de PostgreSQL para evitar inconsistencias en los datos.

  2. Pg_upgrade:es una herramienta de PostgreSQL para actualizar su versión de PostgreSQL. Podría ser peligroso en un entorno de producción y no recomendamos este método en ese caso. Con este método, tendrá tiempo de inactividad, pero probablemente será considerablemente menor que con el método pg_dump anterior.

  3. Replicación lógica:desde PostgreSQL 10, puede usar este método de replicación que le permite realice actualizaciones de versiones principales con cero (o casi cero) tiempo de inactividad. De esta forma, puede agregar un nodo en espera en la última versión de PostgreSQL, y cuando la replicación esté actualizada, puede realizar un proceso de conmutación por error para promover el nuevo nodo de PostgreSQL.

Para obtener información más detallada sobre las nuevas funciones de PostgreSQL 14, puede consultar la Documentación oficial.

Conclusión

PostgreSQL 14 realmente ha mejorado el juego para los usuarios de esta popular base de datos de código abierto. Ahora los desarrolladores y administradores cuentan con capacidades mejoradas para aumentar el alto rendimiento y la escalabilidad, mejoras para bases de datos distribuidas, mejor observabilidad y más.

ClusterControl hace que la actualización a las últimas versiones de tecnología sea simple y sin estrés. Si aún no usa ClusterControl, puede evaluarlo gratis durante 30 días. Para obtener más detalles sobre la última versión de ClusterControl 1.9.2, consulte las notas de la versión completa.

Manténgase al día con las últimas noticias y las mejores prácticas para las bases de datos de código abierto más populares siguiéndonos en Twitter y LinkedIn, y suscribiéndose a nuestro boletín.