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/

PostgreSQL 12 正式发布相关推荐

  1. 百度回应李彦宏卸任百度云执行董事;甲骨文拟增聘 2000 员工拓展云服务;PostgreSQL 12 正式发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  2. OpenJS宣布第一个孵化项目; PostgreSQL 12 正式发布;目标检测新突破

    行 业 要 闻 Industry   News ▲▲▲ 0 1 OpenJS 基金会宣布第一个孵化项目:Node Version Manager OpenJS Foundation宣布,Node Ve ...

  3. PostgreSQL 12 beta 1 发布;中国已有 11 家航空公司向波音索赔

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 [技术资讯] 0.PostgreSQL 12 beta 1 发布,新特性预览 PostgreS ...

  4. Ubuntu 20.04 搜索引擎环境搭建 (PostgreSQL 12.3, Redis 6, ELK[Elasticsearch 7.8, Logstash 7.8, Kibana 7.8])

    2021/02/04 更新redis安装步骤 在软件开发项目中,会遇到搜索引擎.日志收集等需求,本教程在阿里云选择公共镜像 Ubuntu 20.04 后,部署 apt-fast, java, axel ...

  5. PostgreSQL 12 的同步流复制搭建及主库hang问题处理与分析

    点击上方"蓝字" 关注我们,享更多干货! 前言 主备流复制,是PostgreSQL最常用.最简单的一种高可用.读写分离的形式,类似于Oracle的ADG,主库用于读写,备库可以只读 ...

  6. 【华为云技术分享】40%性能提升,华为云推出PostgreSQL 12 商用版

    摘要:日前,华为云数据库正式推出了RDS for PostgreSQL 12版本,并开始商用.本文将从华为云RDS for PostgreSQL 12的4大特性和架构图等多方面来解读华为云Postgr ...

  7. PostgreSQL 12系统表(11)pg_user

    PostgreSQL 12系统表(11)pg_user pg_user提供关于数据库用户的信息 名字 类型 描述 usename name 用户名 usesysid oid 用户的ID usecrea ...

  8. PostgreSQL 12系统表(10)pg_locks

    PostgreSQL 12系统表(10)pg_locks 视图pg_locks提供了数据库服务器上活动进程中保持的锁的信息. 名称 类型 引用 描述 locktype text 可锁对象的类型: re ...

  9. PostgreSQL 12系统表(9)pg_settings

    PostgreSQL 12系统表(9)pg_settings pg_settings提供了对服务器上运行时参数的访问. 名字 类型 描述 name text 运行时配置参数名 setting text ...

最新文章

  1. Bootstrap4+MySQL前后端综合实训-Day04-PM【PowerDesigner 图形化数据库设计软件(设置依赖关系、自动增长主键、生成sql语句)、SQLyog软件(备份数据库)】
  2. Redis sorted set(有序集合)
  3. bat脚本 拷贝文件/文件夹到目标目录
  4. python 求当前小时前n个小时
  5. gimp 抠图_GIMP入门教程2——利用蒙版抠图.pdf
  6. Altium Designer使用者,你想要一键出Gerber吗?
  7. Resnet网络结构图和对应参数表的简单理解
  8. 新能源车提车、上牌流程
  9. 如何将PS中的图片字体变为黑色
  10. Pytorch Gradient Checkpoint使用示例
  11. 对JavaWeb项目中WEB-INF目录的理解
  12. 自用大智慧策略高端版本
  13. 【数据结构】最小生成树(Prim算法,普里姆算法,普利姆)、最短路径(Dijkstra算法,迪杰斯特拉算法,单源最短路径)
  14. Minecraft 1.12.2 彩色渐变字体0.3 掉落物光束
  15. 说话人识别VAD算法概述
  16. 网页版连连看(JS jQuery)
  17. 一次悲惨的被挖矿经历
  18. 【Hive+MySQL+Python】淘宝用户购物行为数据分析项目
  19. 简单理解钽电容和电解电容的区别
  20. 整理的CAPL详细内容

热门文章

  1. pythonnumpy矩阵详解_python常用模块numpy解析(详解)
  2. 干干净净用java_十四步 干干净净卸载Oracle
  3. 壁纸控的你需要看这里!
  4. 精美剪纸风三维感海报合集分享,这样的质感你喜欢吗?
  5. 简单获取PNG免扣素材,提升设计效率
  6. 护肤品APP界面设计模板,可以临摹的UI好素材
  7. qq动态页面变方格_腾讯QQ音乐9.7.5正式版更新:「歌手主页个人主页」界面全新改版...
  8. python list tuple区别_Python list、tuple、dict区别
  9. 使用trace_event跟踪进程的一生
  10. Linux内核协议栈-一个socket的调用过程,从用户态接口到底层硬件