PostgreSQL全球开发小组宣布PostgreSQL 14的第一个beta版本现已可供下载。该发行版包含将在PostgreSQL 14最终发行版中提供的所有功能的预览,尽管该发行版的某些详细信息在此之前可能会发生变化。
您可以在发行说明中找到有关PostgreSQL 14中发现的所有功能和更改的信息:
https://www.postgresql.org/docs/14/release-14.html
本着开源PostgreSQL社区的精神,我们强烈建议您在系统中测试PostgreSQL 14的新功能,以帮助我们消除可能存在的错误或其他问题。虽然我们不建议您在生产环境中运行PostgreSQL 14 Beta 1,但我们鼓励您找到针对此Beta版本运行典型应用程序工作负载的方法。
您的测试和反馈将帮助社区确保PostgreSQL 14版本符合我们提供稳定,可靠的世界上最先进的开源关系数据库版本的标准。请阅读有关我们的Beta测试流程以及您可以如何做出贡献的更多信息:
https://www.postgresql.org/developer/beta/
PostgreSQL 14功能亮点
表现
PostgreSQL 14延续了最新版本的趋势,可为各种规模的工作负载提供性能优势。
对于具有大量数据库连接的PostgreSQL系统,无论其处于活动状态还是空闲状态,此发行版都极大地改善了事务吞吐量。
PostgreSQL 14在减少B树索引开销方面还具有其他优势,包括减少索引频繁更新的表的膨胀。 GiST索引 现在可以在其构建过程中对数据进行预排序,从而可以更快地创建索引并缩小索引。 SP-GiST索引 现在支持覆盖索引 ,该索引使用户可以通过该INCLUDE子句向索引添加其他不可搜索的列。
PostgreSQL 14中对查询并行性进行了许多改进。除了并行顺序扫描的整体性能得到改进之外RETURN QUERY,PL / pgSQL中的指令 现在可以执行具有并行性的查询。 REFRESH MATERIALIZED VIEW 现在也可以使用查询并行性。
PostgreSQL 14还引入了使用外部数据包装器查询远程数据库时利用查询并行性的功能。设置postgres_fdw该async_capable标志后,PostgreSQL外部数据包装器PostgreSQL在PostgreSQL 14中添加了对此的支持。 postgres_fdw它还支持批量插入,并且可以使用导入表分区 IMPORT FOREIGN SCHEMA ,并且现在可以TRUNCATE 在外部表上执行。
此版本还对分区系统进行了多项改进,包括在更新或删除仅影响几个分区的表上的行时提高了性能。在PostgreSQL 14中,现在可以使用ALTER TABLE … DETACH PARTITION … CONCURRENTLY 命令以非阻塞方式分离分区。
PostgreSQL 14中的窗口函数现在可以使用先前发行版中引入的增量排序, 此新发行版为扩展统计信息添加了更多功能,现在可以将其应用于表达式。
PostgreSQL数十年来一直在其“超大数据”列(即TOAST系统)上支持压缩 ,但是此版本增加了现在选择使用 LZ4压缩进行列压缩的功能。
数据类型+ SQL
PostgreSQL 14以其对范围类型的现有支持为基础,添加了新的多范围类型 ,可让您指定不连续范围的有序列表,例如:
SELECT datemultirange( daterange('2021-07-01', '2021-07-31'), daterange('2021-09-01', '2021-09-30'), daterange('2021-11-01', '2021-11-30'), daterange('2022-01-01', '2022-01-31'), daterange('2022-03-01', '2022-04-07') );
新的多范围类型支持范围类型可用的现有操作。
PostgreSQL 14现在增加了一个通用的下标框架,用于检索嵌套对象中的信息。例如,您现在可以JSONB使用下标语法检索数据类型中的嵌套信息,例如:
SELECT ('{ "this": { "now": { "works": "in postgres 14!" }}}'::jsonb)['this']['now']['works'];
PostgreSQL 14还增加了对存储过程中OUT参数的支持,并允许该子句使用关键字来删除重复的 组合。GROUP BYDISTINCTGROUPING SET
对于递归公用表表达式 (WITH查询),PostgreSQL 14分别添加了的语法便利性SEARCH 和,CYCLE 以分别帮助进行顺序检测和循环检测。
date_bin PostgreSQL 14中还有一个新功能,可以将时间戳与指定的时间间隔对齐,这种技术称为“合并”。
行政
PostgreSQL 14对进行了许多改进VACUUM,针对索引进行了优化。现在,Autovacuum可以分析分区表,并且可以将有关行计数的信息传播到父表。也ANALYZE 可以通过maintenance_io_concurrency 参数控制来提高性能。
PostgreSQL 14对可以监视哪些信息进行了许多改进,包括跟踪COPY使用 pg_stat_progress_copy 视图进度的能力。此版本允许您从pg_stat_wal 视图跟踪WAL活动,并从视图检查复制插槽统计信息pg_stat_replication_slots 。
PostgreSQL 14中有几个新参数可以帮助管理连接。这些参数包括idle_session_timeout,可以在指定的时间段后关闭空闲连接,以及 client_connection_check_interval 可以让PostgreSQL在客户端断开连接时取消长时间运行的查询的参数。
该REINDEX命令现在可以处理分区表的所有子索引,并且PostgreSQL 14添加了该pg_amcheck 实用程序来帮助检查数据是否损坏。
复制与恢复
PostgreSQL 14为逻辑复制增加了许多性能优势,包括将正在进行的事务流传输给订阅者而不是等待它们完成的能力。这ALTER SUBSCRIPTION 使得使用新ADD/DROP PUBLICATION语法添加/删除发布变得更加容易。
PostgreSQL 14在崩溃恢复中的启动方式方面具有性能上的改进,现在您可以 pg_rewind在处于待机模式的PostgreSQL实例上使用它。
安全
PostgreSQL 14增加了通过分别使用pg_read_all_data 和pg_write_all_data 角色为用户提供对表/视图/序列的通用“只读”和“仅写”特权的功能。
此版本还默认使用SCRAM-SHA-256 在新的PostgreSQL实例上进行密码管理。此外,中的 clientcert参数pg_hba.conf现在必须使用 verify-ca或verify-full代替旧值。
PostgreSQL 14可以将证书的“专有名称”(DN)用于 文件中 带有参数的基于证书的身份验证。clientname=DNpg_hba.conf
附加的功能
PostgreSQL 14中已经添加了许多其他新功能和改进,其中一些功能对您的用例而言可能比上面提到的功能同等或更重要。请参阅发行说明 以获取新功能和更改功能的完整列表:
https://www.postgresql.org/docs/14/release-14.html
测试错误和兼容性
每个PostgreSQL版本的稳定性在很大程度上取决于您社区,您需要使用工作量和测试工具来测试即将发布的版本,以便在PostgreSQL 14全面上市之前发现错误和回归。由于这是Beta版,因此对数据库的微小更改行为,功能详细信息和API仍然可行。您的反馈和测试将有助于确定对新功能的最终调整,因此请在不久的将来进行测试。用户测试的质量有助于确定何时可以发布最终版本。
未解决问题的列表 可在PostgreSQL Wiki中公开获得。您可以 使用以下表格在PostgreSQL网站上报告错误:
https://www.postgresql.org/account/submitbug/
测试时间表
这是版本14的第一个beta版本。PostgreSQL项目将根据测试要求发布其他beta版本,然后发布一个或多个候选版本,直到2021年末发布最终版本。有关更多信息,请参见Beta测试页面。
PostgreSQL 14下载:https://www.postgresql.org/download/
文章来源:https://www.postgresql.org/about/news/postgresql-14-beta-1-released-2213/




