Toggle navigation
PostgreSQL中文社区
首页
(current)
社区新闻
中文文档
加入ACE
相关资料
了解PostgreSQL
PostgreSQL相关文档
PostgreSQL软件下载
PostgreSQL中文图书
社区年会PPT资料
关于中文社区
注册
登录
所有版本列表
首页
新版本发布声明
PostgreSQL 14 Beta1版本发布说明
翻译:
doudou586
... 新闻稿采编:
2021-05-22 18:22:07+08
软件发布:2021-05-22
2021-05-20,PostgreSQL全球开发组宣布PostgreSQL 14的第一个Beta版本正式提供[下载](https://www.postgresql.org/download/)。这个版本包含将来PostgreSQL 14正式版本中的所有特性和功能,当然一些功能的细节在正式版本发布时可能会有些变化。 可以从以下[网址](https://www.postgresql.org/docs/14/release-14.html)浏览PostgreSQL 14版本所有的新特性和变化内容。按PostgreSQL开源社区的精神,我们鼓励大家在用户的场景下测试新功能,以帮助我们消除Bug或是其他可能存在的问题。当然我们不建议大家在生产环境使用PostgreSQL 14 Beta1版本, 我们鼓励在用户使用生产环境下的数据或工作负载测试这个版本。用户的测试将帮助社区来确保PostgreSQL 14版本保持我们一贯以来的标准,即提供稳定、可靠的世界上功能最为强大的开源的关系数据库系统。用户可以从以下网址浏览有关[Beta测试](https://www.postgresql.org/developer/beta/)的过程以及如何向PostgreSQL项目作贡献的内容。 #### PostgreSQL 14版本新特性 ##### 性能提升 - PostgreSQL 14版本保持了一贯以来的传统,即在各种规模负载下都可以提供较理想的性能表现。这个版本尤其是在有大量连接的场景下(不论这些连接是活动或是休闲状态),大幅提高了事务的吞吐量。 - PostgreSQL 14版本也在减少B树索引负载方面有了提高,包括对频繁更新的表索引减少了[表膨胀](https://www.postgresql.org/docs/14/btree-implementation.html#BTREE-DELETION)的情况。 - [GiST索引](https://www.postgresql.org/docs/14/indexes-types.html#INDEXES-TYPE-GIST)在创建的过程中可以预排序,对快速创建索引或是减小索引大小都有好处。 - [SP-GiST索引](https://www.postgresql.org/docs/14/indexes-types.html#INDEXES-TYPE-SPGIST) 现在支持[包含索引](https://www.postgresql.org/docs/14/indexes-index-only-scans.html),让用户可以通过INCLUDE选项来添加非搜索列至索引中。 - PostgreSQL 14也在并行查询方面作为较多改进。除了对[并行顺序扫描](https://www.postgresql.org/docs/14/parallel-plans.html#PARALLEL-SCANS)进行了全面提升外,现在[PL/SQL](https://www.postgresql.org/docs/14/plpgsql.html")中,使用RETURN QUERY可以并行查询,而[REFRESH MATERIALIZED VIEW](https://www.postgresql.org/docs/14/sql-refreshmaterializedview.html)物化视图刷新现在也可以使用并行机制执行了。 - PostgreSQL 14版本中也对使用[外部数据封装器](https://www.postgresql.org/docs/14/sql-createforeigndatawrapper.html)查询远程数据库引入了并行查询机制。在将async_capable参数设置为true后,PostgreSQL的外部数据封装器之一[postgres_fdw](https://www.postgresql.org/docs/14/postgres-fdw.html)就支持并行查询,也支持批量导入,同时通过使用IMPORT FOREIGN SCHEMA指令可以导入分区表,甚至还可以对外部表执行truncate批量清除。 - 14版本也对分区表进行了几处优化,包括对涉及较多分区的记录进行更新或删除。在新版本里,分区表也可以通过使用[ ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY](https://www.postgresql.org/docs/14/sql-altertable.html#SQL-ALTERTABLE-DETACH-PARTITION)非阻塞的模式进行摘除。 - 增量排序是从上一个版本引入的功能,现在这个功能在新的14版本中也可以用于[窗口函数](https://www.postgresql.org/docs/14/functions-window.html)了。新版本对扩展统计信息也进行了增强。 - 数十年来PostgreSQL都提供了对大数据列的压缩功能([TOAST大数据列存储技术](https://www.postgresql.org/docs/14/storage-toast.html)),在这个14版本中增加了用户可以选择LZ4算法进行数据列压缩的能力。 ##### 数据类型 + SQL - 在现有PostgreSQL对range类型支持的基础上,新的14版本增加了新的[多范围数据类型multirange](https://www.postgresql.org/docs/14/rangetypes.html#RANGETYPES-BUILTIN),让用户可以定义非连续的范围数据,比如``` 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') ) ``` 。新的multirange类型支持range类型的所有操作。 - PostgreSQL 14版本现也增加了通用的从嵌套对象中提取信息的下标访问机制,比如,从嵌套的JSONB中提取信息:``` SELECT ('{ "this": { "now": { "works": "in postgres 14!" }}}'::jsonb)['this']['now']['works']; ``` 。 - PostgreSQL 14版本也对存储过程提供了新的OUT参数,并且允许GROUP BY使用distinct关键字来移至GROUP SET组合中的重复项。 - 对可递归的公共表达式CTE功能,PostgreSQL14版本增加了便于理解的语义关键字SEARCH和CYCLE来帮助进行排序或是循环检查。 - 新版本中也增加了一个date_bin函数,用于处理时间戳与指定的时间间隔的操作,该技术称之为binning。 ##### 数据库管理 - PostgreSQL 14版本中对[VACUUM](https://www.postgresql.org/docs/14/routine-vacuuming.html)操作也进行了多处改进,特别是针对索引操作。Autovacuum进程现在可以分析分区子表,然后将相关信息传给主表。另外通过设置 maintenance_io_concurrency参数,ANALYZE的性能也会得到提升。 - PostgreSQL 14版本对可以进行监控或跟踪发信息也进行了改进,包括通过使用pg_stat_progress_copy视图来跟踪COPY的进度,通过使用pg_stat_wal视图来跟踪WAL的活动,通过使用pg_stat_replication_slots视图来检查复制槽的信息。 - PostgreSQL 14版本中也增加了几个参数来管理数据库连接, idle_session_timeout参数用于在指定时间后,关闭已不活动的连接,client_connection_check_interval参数用于让主进程取消用户已断开连接但仍在长时间运行的查询。 - REINDEX指令现在对分区表可以让所有分区子表进行索引;14版本也增加了pg_amcheck工具程序来检查数据不一致性的问题。 ##### 数据复制和恢复 - PostgreSQL 14版本中对逻辑复制增加了几处性能优化,包括传递处理中的事务流至订阅者,而不是像以前等事务完成后再发送。 通过使用新的ADD/DROP PUBLICATION语法,来增加或移除发布,使得 ALTER SUBSCRIPTION变更订阅也更简单。 - 在PostgreSQL宕机后重启时,在新版本中的性能会更好一些;新版本中用户可以也使用pg_rewind指令来操作备机节点。 #####安全性 - PostgreSQL 14版本中,通过使用pg_read_all_data 和pg_write_all_data两个预定义的角色,可以给用户进行完全只读或是只写的权限。 - 新版本中,缺省使用 SCRAM-SHA-256算法来进行密码的管理。另外,在ph_hba.conf配置文件中,clientcert参数现在只能使用verify-ca 或是 verify-full数值 ,以前的参数值不再使用。 - PostgreSQL 14版本中,如在pg_hba.conf中定义了clientname=DN,则系统会使用证书的专有名称(DN名称)来进行基于证书的认证。 #### 其他的特性功能 许多其他的新特性和改进也加入了PostgreSQL 14,部分内容对一些特定的用户也许比上面提及的改进更重要。请参阅 [发布声明详稿](https://www.postgresql.org/docs/14/release-14.html) 来浏览完整的全部新特性或是改进功能列表。 #### Bug和兼容性的测试 每一个PostgreSQL版本的稳定性都依赖于社区中的广大用户,来使用自己的工作负载和测试工具来发现Bug及进行回归测试。由于这还是一个Beta版本,数据库操作的方式、新特性的细节以及API可能都还会有小的修改。用户的反馈和测试将帮助我们决定对新特性的最终优化,所以请在近期就进行测试。用户测试的质量将帮助我们决定何时可以发布最终版本。 目前仍待解决的问题在PostgreSQL的WIKI页面上有一个 [问题列表](https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items)。用户可以通过 以下网址来报告Bug:https://www.postgresql.org/account/submitbug/ #### BETA发布安排 这是PostgreSQL 14的第1个Beta版本,PostgreSQL项目组会根据测试情况来发布更多的测试版本,在2021年末正式版本发布前会发布1个或多个候选版本。更多信息请浏览 [Beta版本测试信息](https://www.postgresql.org/developer/beta/) #### 相关链接 - 下载: https://www.postgresql.org/download/ - Beta版本测试信息:https://www.postgresql.org/developer/beta/ - PostgreSQL 14 Beta发布说明详稿: https://www.postgresql.org/docs/14/release-14.html - PostgreSQL 14版本待处理问题: https://www.postgresql.org/support/versioning/ - 提交Bug: https://www.postgresql.org/account/submitbug/
© 2010 PostgreSQL中文社区