2019-10-03,PostgreSQL全球开发组今天宣布,世界上功能最为强大的开源数据库发布PostgreSQL 12版本发布。

ab0675051e21d8c7f4fef5c6226a02e6.png

PostgreSQL 12版在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。

这个版本为应用程序开发人员提供了更多的功能,比如对SQL/JSON路径表达式的支持,优化公共表达式(WITH查询)的执行,以及对生成列的支持等。PostgreSQL除了持续对PostgreSQL系统的可扩展性、稳健性进行开发外,还更多地在本地化、授权控制以及更加容易的管理进行增强。这个版本也引入了 可插拨的表存取接口,来允许开发者在表的创建和使用时使用不同的存取方式。

“在PostgreSQL后面的开发者社区为PostgreSQL 12版所作的大量工作,让我们用户可以以较小的成本换来性能和空间管理等特性,包括企业级安全、 后台管理和SQL/JSON支持等功能”,作为全球开发组核心成员之一的Dave Page说道,“这个版本延续了PostgreSQL一直以来的对大大小小各级别数据量 的轻松管理,同时在生产环境中的兼具灵活性、可靠性,赢得了长期的声誉”。

得益于超过20年以上的开源产品开发,PostgreSQL已成长为各种大小规模组织喜爱的开源关系数据库产品。系统持续得到行业的认可,2017、2018连 续2年被DB-Engines评选为 "年度优秀数据库" ,2019年度又被OSCON国际开源组织评为“终身成就奖”的开源产品。

全面的性能提升

PostgreSQL 12版本在性能和易维护性方面有了显著的增强,尤其是对索引和分区子系统。

PostgreSQL 12版对标准索引类型B树索引进行了优化,以使其可以可以更好地处理索引更新频率较高类型的负载的的总体性能,使用最常使用的TPC-C 性能测试,PostgreSQL 12版平均可以提升约40%的空间利用率和查询性能。

对分区表的查询也得到了较大改进,特别是对那些有数千个分区的表,而结果只需从几个有限的分区提取数据的查询。PostgreSQL 12版对通过INSERT 和COPY指令将数据加入分区表的操作,也有加强,包括现在可以在不阻塞查询的情况下增加新的分区。

另外,PostgreSQL 12版对索引的优化也提升了总体的性能,包括生成GiST、GIN或SP-GiST索引的WAL日志的负载显著减少,在GiST类型索引上创 建INCLUDE选项的包含索引,SP-GiST索引现在支持距离操作的K-NN(即相邻最近)查询,以及CREATE STATISTICS指令现在支持最常用值MCV 的统计来帮助那些字段值非均匀分布的查询生成更优化的查询计划。

通过使用LLVM,从PostgreSQL 11版引入的JIT即时编译,现在在PostgreSQL 12版中缺省已是启用状态,JIT即时编译对带有WHERE条件、对象列表、 聚合以及一些内部操作都会提供性能上的帮助。当然,用户在安装或是编译时需要包含LLVM模块。

对SQL标准一致性和功能的增强

PostgreSQL一直以来以其对SQL标准符合性而著称,这也是其名称由POSTGRES改为PostgreSQL的一个小原因。PostgreSQL 12版又增加了几个新特性 来持续实现对SQL标准的符合性的强化。

PostgreSQL 12版加入了对JSON文档进行查询时使用JSON路径表达式的功能,这也是SQL/JSON中定义的规范。对使用JSONB格式保存的文档,这些查 询可以利用已有的索引机制来高效地提取数据。

公共表达式,也称之为WITH查询,在PostgreSQL 12版中可以实现非物化操作处理,这对很多现在已有的查询有很大帮助。目前在这个版本中,WITH 查询的前提条件是非递归查询并且仅可被外层查询引用一次。

PostgreSQL 12版也引入了“生成列”功能,这也是SQL标准中的要求,这些字段值是通过同一表中其它列计算而来的。在这一版本中,PostgreSQL支 持“保存生成列值”的功能,即将这些计算出来的数据存储在磁盘上。

本地化

PostgreSQL 12版扩充了对ICU 排序规则的支持,允许用户自行定义非标准的排序方式,比如允许大小写不敏感或是按口音不敏感的比较规则。

授权控制

PostgreSQL 通过再次扩展了一些的安全方面的功能来强化了它本来就很稳健的权限控制。这个版本中通过GSSAPI接口支持客户端和服务端的双向加密, 如果在编译时加入OpenLDAP模块,PostgreSQL也支持搜索LDAP服务器的功能。

另外,PostgreSQL 12版现在支持多约束的授权方式。如在使用scram-sha-256的授权方式,PostgreSQL服务器现在可以强制一个客户端在提供 用户名、使用clientcert=verify-full选项,再必须提供有效的SSL证书的方式来强化安全授权。

系统管理

PostgreSQL 12版的REINDEX CONCURRENTLY指令可以在不影响新的索引写入的前提下让用户执行重建索引操作,这有助于用户实现不停机对 较大索引的重建。

还有,PostgreSQL 12版通过使用pg_checksums指令对停机的PostgreSQL来开启或关闭页校验功能,该功能有助于检查已写入磁盘的数据一致性, 而以前版本中该操作仅允许在 initdb的阶段来执行。

浏览完整的全部新特性或是改进功能列表,请参阅:https://www.postgresql.org/docs/12/release-12.html

关于PostgreSQL

PostgreSQL是世界上最先进的开源关系型数据库,它的全球社区是一个由数千名用户、开发人员、公司或其他组织而组成。PostgreSQL项目 有30年以上的历史,起源于加利福利亚的伯克利大学,经历了无数次开发升级。PostgreSQL的专业特性不仅包含顶级商业数据库系统的功能 特性,更是在高级数据库功能、数据库扩展性、数据库安全性和稳定性方面超过了它们。若想获取到更多关于PostgreSQL的信息或者加入到 PostgreSQL社区,请浏览 PostgreSQL.org 网站。

关于新特性的更多信息

有关这些特性的更多解释,请浏览下列资源:

  • 发布声明
  • 特性矩阵
  • 主要特性PPT
  • 主要特性PPT2

下载链接

有以下几种方式下载PostgreSQL 12版本,包括:

  • 官方下载网站,它包含在Windows、LInux、MacOS、BSD及Solaris等各平台安装程序以及相关工具;
  • 源代码
  • 中文社区网站,为方便中文用户,已同步了源代码和Windows 64位安装程序至中文网站 ;

其他相关工具或是扩展可以在这里下载:PostgreSQL扩展网

相关文档

PostgreSQL 12版本的文档有两种随软件发布的HTML格式和man格式,用户也可以在线浏览HTML格式和PDF格式的文档。

版权声明

PostgreSQL 使用PostgreSQL版权,它是类似BSD的版权,只要求对有版权的源代码保留其版权和授权的信息即可。由于这个经 OSI认证的版权不限制PostgreSQL在商业环境和有版权的应用程序中使用,因此被公认为是非常有灵活性和对商业应用是友好的。加上有多个公司的支持和源代码归属公共所有,我们的版权使得PostgreSQL在那些希望在自己的产品里嵌入数据库的厂商中很流行,因为他们不用担心费用、嵌入软件的版权锁以及版权条款的改变。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐