PostgreSQL 12?正式发布

afterer
?afterer
发布于 2019年10月04日
收藏 38

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

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

全面的性能提升

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/about/news/1976/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创365bet手机版中文社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:PostgreSQL 12?正式发布
加载中

精彩评论

左华栋
左华栋
比MySQL 强大太多了,而且还稳定
冰力
冰力
高端产品挺流行的,低端用户不流行。
小王来了
小王来了
我们公司用9.8 用习惯了 和mysql没啥区别,但是数据量一大确实比mysql性能强
左华栋
左华栋
大数据量下是 MySQL 50倍以上。
联表查询十几倍。
石家庄清风
石家庄清风
已解决!是pg12的pg_catalog schema数据结构变化,除pgAdmin外,多个第三方客户端都挂了,navicat-12.1.23为最低支持版本(来自官方release note,未测试),给phppgadmin也提交了request。

最新评论(30

晒太阳的小猪
晒太阳的小猪
并行集群环境如何玩耍
365bet手机版中文中国首席罗纳尔多
365bet手机版中文中国首席罗纳尔多
性能和mysql比谁好?
左华栋
左华栋
大数据量下是 MySQL 50倍以上。
联表查询十几倍。
久永
久永
大家都说的好,那我就提提缺点:客户端Web界面话,以后开发就会需要耦合浏览器,真恶心,而且还变大了。
因此搞得我们只好停留在9.5,9.6。
左华栋
左华栋
数据库跟浏览器有什么关系?
实在不清楚你的逻辑。
冷冷gg
冷冷gg
??TIDB - - 基于这 就好了
yywww
yywww
有足够多的分布式数据库是基于postgresql了,如greenplum, deepgreen等等,实在是没有tidb啥事情
冷冷gg
冷冷gg
学习了
左华栋
左华栋
yugabytedb、cockroahdb、greenplum 三个newSQL 数据库都是pg 协议的~
霡霂
霡霂
除了基于pg协议,还要看各个语言的SDK和驱动是不是支持,协议之外,语法上还是有些差别的。
haitaosoft
haitaosoft
都12了!
当年还是7.6是时候用过,在前置服务器。。。。
365bet手机版中文中国首席罗纳尔多
365bet手机版中文中国首席罗纳尔多
单库最多支持多少数据量会慢?
r
rund11
国内抄代码的多,mysql用的习惯
左华栋
左华栋
性能调优或者有事务需求,就不那么习惯了
p
polong
怎么下载呢?
左华栋
左华栋
postgresql 官网。
linux 的话 ,apt yum 都可以
oscyj
oscyj
pg老用户发来贺电
石家庄清风
石家庄清风
pg_dump导出pg11的数据后,再用pg_restore或psql命令导入pg12,结果pg12中用phppgadmin/navicat都无法浏览数据,发现原因是系统表pg_catalog表丢失,直接导入pg11没任何问题。有人遇到了吗?
石家庄清风
石家庄清风
用pg_upgrade处理,结果一样,pg_upgrade加-c参数检测显示数据兼容。
石家庄清风
石家庄清风
已解决!是pg12的pg_catalog schema数据结构变化,除pgAdmin外,多个第三方客户端都挂了,navicat-12.1.23为最低支持版本(来自官方release note,未测试),给phppgadmin也提交了request。
返回顶部
顶部