26 de septiembre de 2024 - El Grupo Global de Desarrollo de PostgreSQL ha anunciado hoy el lanzamiento de PostgreSQL 17, la versión más reciente de la base de datos de código abierto más avanzada del mundo.
PostgreSQL 17 es el resultado de décadas de desarrollo de código abierto, que ha mejorado su rendimiento y escalabilidad y le ha permitido adaptarse a los nuevos patrones de acceso y almacenamiento de datos. Esta versión de PostgreSQL añade mejoras significativas en su rendimiento general, que incluyen una implementación revisada de la gestión de memoria para vacuum, optimizaciones en el acceso al almacenamiento y mejoras en las cargas de trabajo de alta concurrencia, mayor velocidad en la exportación y carga masiva de datos, y mejoras en la ejecución de consultas para índices. PostgreSQL 17 contiene características que benefician tanto a las nuevas cargas de trabajo como a los sistemas críticos, tales como una experiencia enriquecida para los desarrolladores gracias al comando JSON_TABLE
de SQL/JSON, y mejoras en la replicación lógica que simplifican la gestión de las cargas de trabajo de alta disponibilidad y las actualizaciones a versiones principales.
"PostgreSQL 17 demuestra cómo la comunidad global de código abierto, que impulsa el desarrollo de PostgreSQL, realiza mejoras que ayudan a los usuarios a lo largo de todas las etapas de su viaje en el mundo de las bases de datos", dijo Jonathan Katz, miembro del Core Team de PostgreSQL. "Sea que se trate de mejoras en el funcionamiento de bases de datos a gran escala o de nuevas características que refuerzan la agradable experiencia de los desarrolladores, PostgreSQL 17 potenciará su experiencia en la administración de datos".
PostgreSQL es un innovador sistema de gestión de datos conocido por su confiabilidad, robustez y extensibilidad. Cuenta con más de 25 años de desarrollo de código abierto por parte de una comunidad global de desarrolladores y se ha convertido en la base de datos relacional de código abierto preferida por organizaciones de todos los tamaños.
El proceso de vacuum en PostgreSQL es fundamental para el buen estado de las operaciones, ya que requiere recursos de instancias del servidor para funcionar. PostgreSQL 17 introduce una nueva estructura de memoria interna para vacuum que consume hasta 20 veces menos memoria. Esto mejora la velocidad de vacuum y reduce el uso de recursos compartidos, ofreciendo una mayor cantidad de memoria disponible para las cargas de trabajo.
PostgreSQL 17 continúa mejorando el rendimiento de su capa de E/S. Las cargas de trabajo de alta concurrencia pueden obtener hasta el doble de rendimiento en las operaciones de escritura debido a mejoras en el procesamiento del registro de escritura anticipada
(WAL).
Además, la nueva interfaz de E/S en flujo acelera los escaneos secuenciales (al leer todos los datos de una tabla) y la rapidez con la queANALYZE
puede actualizar las estadísticas del planificador.
PostgreSQL 17 también extiende sus mejoras de rendimiento a la ejecución de consultas. De hecho, mejora el rendimiento de las consultas con cláusulas IN
que utilizan índices
B-tree
el método de índice predeterminado en PostgreSQL. Además, los índices
BRIN ahora soportan construcciones paralelas. PostgreSQL 17 incluye varias mejoras para la planificación de consultas, como optimizaciones para restricciones NOT NULL
y mejoras en el procesamiento de expresiones de tabla comunes
(consultas WITH
). Esta versión ofrece un mayor soporte para SIMD (Single Instruction/Multiple Data) con el fin de acelerar las operaciones de cálculo, incluyendo el uso de AVX-512 para la función
bit_count
.
PostgreSQL fue la primera base de datos relacional en añadir soporte para JSON (2012),
y PostgreSQL 17 amplía su implementación del estándar SQL/JSON.
JSON_TABLE
ya está disponible en PostgreSQL 17, lo cual permite a los desarrolladores convertir datos JSON en una tabla PostgreSQL estándar. PostgreSQL 17 ahora soporta constructores SQL/JSON
(JSON
, JSON_SCALAR
, JSON_SERIALIZE
) y
funciones de consulta
(JSON_EXISTS
, JSON_QUERY
, JSON_VALUE
) ofreciendo a los desarrolladores otras formas de interactuar con sus datos JSON. Esta versión añade más
expresiones jsonpath
,
con énfasis en la conversión de datos JSON a un tipo de datos PostgreSQL nativo, incluidos los tipos numérico, booleano, de cadena y de fecha/hora.
PostgreSQL 17 añade más características a MERGE
,
que se utiliza para actualizaciones condicionales, incluyendo la cláusula RETURNING
así como la posibilidad de actualizar vistas.
Además, PostgreSQL 17 cuenta con nuevas capacidades para la exportación y carga masiva de datos, incluida una mejora de rendimiento de hasta el doble al exportar registros de gran tamaño mediante el comando COPY
. El rendimiento de
COPY
también ha mejorado en los casos en que las codificaciones de origen y destino coinciden, e incluye la nueva opción ON_ERROR
, que hace posible continuar un proceso de importación incluso si se produce un error de inserción.
Esta versión incrementa la funcionalidad tanto para el manejo de datos en particiones como para datos distribuidos a través de instancias remotas de PostgreSQL. PostgreSQL 17 soporta el uso de columnas de identidad y restricciones de exclusión en
tablas particionadas.
El conector de datos externos de PostgreSQL
(postgres_fdw
), usado para ejecutar consultas en instancias remotas de PostgreSQL, ahora puede enviar subconsultas EXISTS
e
IN
al servidor remoto permitiendo un procesamiento más eficiente.
PostgreSQL 17 incorpora también un proveedor de intercalación inmutable, sin dependencia de plataforma, que garantiza su inmutabilidad y proporciona una semántica de ordenación similar a la de la intercalación aunque con codificación UTF-8
en lugar de
SQL_ASCII
. El uso de este nuevo proveedor de intercalación garantiza que las consultas en formato texto devuelvan los mismos resultados ordenados independientemente de dónde se ejecute PostgreSQL.
La replicación lógica se utiliza para enviar datos en tiempo real en distintos escenarios de uso. Sin embargo, antes de esta versión, los usuarios que querían realizar una actualización a una versión principal tenían que eliminar los slots de replicación lógica, y tras la actualización, volver a sincronizar los datos con los suscriptores. Para las actualizaciones realizadas desde PostgreSQL 17, los usuarios ya no tendrán que eliminar los slots de replicación lógica, lo cual simplifica el proceso de actualización al utilizar este tipo de replicación.
PostgreSQL 17 ahora dispone de control de failover para la replicación lógica, lo que la hace más resiliente cuando se implementa en entornos de alta disponibilidad. Además, PostgreSQL 17 introduce la herramienta de línea de comando
pg_createsubscriber
para convertir una réplica física en una nueva réplica lógica.
PostgreSQL 17 amplía aún más la forma en que los usuarios pueden gestionar el ciclo de vida completo de sus sistemas de bases de datos. PostgreSQL cuenta con la nueva opción TLS, sslnegotiation
, que permite a los usuarios realizar un handshake TLS directo cuando se utiliza
ALPN
(registrado como postgresql
en el directorio ALPN). PostgreSQL 17 también añade el rol predefinido pg_maintain
,
que otorga a los usuarios permiso para realizar operaciones de mantenimiento.
pg_basebackup
, la utilidad incluida en PostgreSQL que permite realizar respaldos, ahora soporta respaldos incrementales y agrega la utilidad pg_combinebackup
para reconstruir un respaldo completo. Además,
pg_dump
incluye una nueva opción llamada --filter
que permite seleccionar qué objetos incluir al generar un archivo de volcado.
PostgreSQL 17 también incluye mejoras en las funciones de monitoreo y análisis.
EXPLAIN
ahora muestra el tiempo empleado para lecturas y escrituras de bloques de E/S locales, e incluye dos nuevas opciones:
SERIALIZE
y MEMORY
, útiles para visualizar el tiempo empleado en la conversión de datos destinados a la transmisión por red, así como la cantidad de memoria utilizada. PostgreSQL 17 ahora reporta el progreso del proceso de vacuum en índices,
y añade la vista del sistema pg_wait_events
que, combinada con pg_stat_activity
,
proporciona más información sobre las razones por las que una sesión activa se encuentra en estado de espera.
Se han añadido numerosas nuevas características y mejoras a PostgreSQL 17 que podrían ser útiles para sus casos de uso. Consulten las notas de la versión para obtener una lista completa de las características nuevas y modificadas.
PostgreSQL es la base de datos de código abierto más avanzada del mundo, que cuenta con una comunidad global de miles de usuarios, contribuidores, empresas y organizaciones. Basada en más de 35 años de ingeniería, que comenzaron en la Universidad de Berkeley en California, PostgreSQL ha continuado con un ritmo de desarrollo inigualable. El maduro conjunto de características de PostgreSQL no sólo iguala a los principales sistemas de bases de datos propietarios, sino que los supera en términos de características avanzadas, extensibilidad, seguridad y estabilidad.
PostgreSQL es la base de datos de código abierto más avanzada del mundo, que cuenta con una comunidad global de miles de usuarios, contribuidores, empresas y organizaciones. Basada en más de 35 años de ingeniería, que comenzaron en la Universidad de Berkeley en California, PostgreSQL ha continuado con un ritmo de desarrollo inigualable. El maduro conjunto de características de PostgreSQL no sólo iguala a los principales sistemas de bases de datos propietarios, sino que los supera en términos de características avanzadas, extensibilidad, seguridad y estabilidad.
Learn more about PostgreSQL and participate in our community at PostgreSQL.org.
Para más información sobre las características antes mencionadas y otras más, consulten los siguientes recursos:
Hay varias maneras de descargar PostgreSQL 17, entre ellas:
Otras herramientas y extensiones están disponibles en el PostgreSQL Extension Network.
PostgreSQL 17 incluye documentos HTML y páginas de manual. Es posible también consultar la documentación en línea en formato HTML y PDF.
PostgreSQL utiliza la PostgreSQL License, una licencia "permisiva" de tipo BSD. Esta licencia certificada por la OSI es ampliamente apreciada por ser flexible y adecuada para las empresas, ya que no limita el uso de PostgreSQL con aplicaciones comerciales y propietarias. Junto con el soporte para múltiples empresas y la propiedad pública del código, nuestra licencia hace que PostgreSQL sea muy popular entre los proveedores que desean integrar una base de datos en sus propios productos sin tener que preocuparse por tarifas, dependencia de un único proveedor o cambios en los términos de la licencia.
Sitio web
Correo electrónico
Postgres, PostgreSQL y el logo del elefante (Slonik) son todas marcas registradas de la PostgreSQL Community Association. Quien desee utilizar estas marcas, deberá cumplir con la política de marca.
PostgreSQL cuenta con el soporte de numerosas empresas, que patrocinan a los desarrolladores, ofrecen recursos de alojamiento y nos dan apoyo financiero. Consulten nuestra página de patrocinadores para conocer algunos de los que dan soporte al proyecto.
Existe también una gran comunidad de empresas que ofrecen soporte para PostgreSQL, desde consultores individuales hasta empresas multinacionales.
Si desean hacer una contribución financiera al Grupo Global de Desarrollo de PostgreSQL o a una de las organizaciones sin fines de lucro reconocidas por la comunidad, visiten nuestra página de donaciones page.