最稳定可靠,PostgreSQL 12.1版本正式发布!

1. PG 12.1 Beta发布了!

PostgreSQL全球开发组宣布,PostgreSQL 12的第一个测试版(PG 12.1 Beta)现已开放下载。该版本中可预览的所有特性都将延续至PG 12的最终版本中,不过在最终版本发布之前,一些细节仍可能发生变动。

本着PG社区的开源精神,我们强烈呼吁大家在自己的数据库系统中测试PG 12的新特性,从而帮助我们更多地消除可能存在的任何bug以及问题。当然,我们并不是建议您在自己的生产环境中应用PG 12.1 Beta,而是希望您寻找一种可以利用您现有的经典应用对该版本进行测试的一种方法。

PG 12秉承了我们的一直以来为世界最先进的开源关系型数据库提供稳定可靠版本的标准。因此为了帮助我们确保这一点,我们非常需要您积极的测试及反馈。

2. PG 12特性概览

2.1 索引的性能、功能性以及管理

PG 12通过改善索引的空间管理,进而提升了标准B树索引的总体性能。除了性能上的提升,这些改进也提供了对频繁修改的索引所占用空间的缩减。

此外,PG 12增加了在线重建索引的功能,该功能可以让您的REINDEX操作不再阻塞任何对索引的写入。当您在生产环境中管理PG数据库时,该功能可以有效解决由于漫长地重建索引而导致的迫不得已的业务中断。

PG 12对一些特定的索引机制的功能进行了扩展。例如在PG 11中引入的用于创建覆盖索引(covering index)的include子句,在PG 12中将同样适用于创建GiST索引。SP-GiST索引现在支持对支持距离(<->)操作的数据类型使用k近邻法(K-nearest neighbor K-NN)查询。

在PG 12中,创建一个GiST、GIN或是 SP-GiST索引所产生的日志先行(write-ahead log –WAL)的消耗将大大减少。这也为PG集群对磁盘的利用,以及一些像连续归档(continuous archiving)、流复制(streaming replication)这样的功能,提供了诸多益处。

2.2 内嵌WITH查询(Common table expressions)

公用表表达式(Common table expressions),亦被称为WITH查询,现在可以自动内嵌到一个查询语句中。但这些WITH查询须符合如下条件:

  • 不是递归的
  • 没有任何副作用
  • 在整条sql语句的后续部分中只会被引用一次

这将移除从PG 8.4引入WITH子句时就已存在的”optimization fence”。

如果有需要,可以使用MATERIALIZED子句来强制使一个WITH查询物化。如下:

WITH c AS MATERIALIZED ( SELECT * FROM a WHERE a.x % 4 = 0 ) SELECT * FROM c JOIN d ON d.y = a.x;

2.3 分区

对拥有上千个分区的表中检索一小部分分区的操作的处理,PG 12进行了性能上的优化。

PG 12也对分区表进行INSERT以及COPY操作时的性能进行了改善。PG 12中执行ATTACH PARTITION操作将不再阻塞对分区表并发查询。此外,PG 12中将允许创建关联到分区表的外键。

2.4 JSON path queries per SQL/JSON specification

PG12现在支持SQL:2016标准中的每一个SQL/JSON规范的JSON path查询。就像查询XML使用的Xpath一样,JSON path表达式可以让您除了对json文档中的值进行比较以外,还可以让您计算多种多样的算术表达式和函数。

这些表达式中的一部分还可以使用GIN索引来提高计算效率,从而高效的对JSON数据集进行检索。

2.5 校对

PG 12现在支持对ICU提供的排序规则进行不区分大小写(case-insensitive)、不区分口音(accent-insensitive)的比较,亦被称为非确定性校对(nondeterministic collations)。

当该特性被使用时,这些collation可以为排序和比较提供便利,但同时可能会因为对字符串额外的检查,而导致额外的性能损失。

2.6 Most-common Value Extended Statistics

在PG 10中引入的CREATE STATISTICS,是为了在多列上收集更复杂的统计信息,从而帮助产生更准确的执行计划。在PG 12中,收集统计信息支持most-common value statistics。这将进一步提升当数据分布不均匀时产生的执行计划的准群性。

2.7 被生成的列(Generated Columns)

PG 12允许创建生成列(就是Oracle的虚拟列)。这是一种列值是由其他列的值计算得出的列。该特性允许创建可存储的(stored)生成列,即在insert或update时计算出生成列的列值并存储于物理磁盘上。虚拟的(Virtual)生成列,是只有在其作为查询的一部分时才生成,目前该功能尚未实现。

注:生成列分为俩种stored和virtual,stored类型是写入是计算的得到,而virtual类型是只有读时才计算。

2.8 可插拔的表存储接口(Pluggable Table Storage Interface)

PG 12引入可插拔表存储接口(pluggable table storage interface),允许创建和使用不同的表存储方法。新的访问方法可以通过使用CREATE ACCESS METHOD的指令被添加到PG集群中,并且随后可以使用CREATE TABLE的新子句—USING,将新的访问方法添加的具体的表中。

一个表存储接口可以通过创建一个新的表访问方法来定义。

在PG 12中默认使用的存储接口是堆访问方法(heap access method),该方法是目前唯一的内置方法。

2.9 块校验和(Page Checksums)

pg_verify_checkums这条指令现在更名为pg_checksums,并且可以在一个离线的PG集群中进行启用和禁用。在之前的版本,该功能只能在使用initdb对集群初始化时启用。

2.10 身份认证以及连接安全(Authentication & Connection Security)

GSSAPI现在支持客户端和服务器端加密,该功能可以在pg_hba.conf 中使用hostgssenc和hostnogssenc这俩中记录类型进行指定。

如果PG 12是使用OpenLDAP进行编译的,那么PG 12还可以发现基于DNS SRV记录的LDAP servers。

3. 行为变更注意事项

PG 12中引入一些改变,这将对您惯用的管理时进行的操作和行为有一定影响。下面会列举这些变化中的一小部分,更多的其他改变的相关信息,可以从Release Notes的”Migrating to Version 12″部分中获取(https://www.postgresql.org/docs/devel/release-12.html)

1. recovery.conf这个参数文件现在已经合并到postgresql.conf文件中了。如果PG检测到有recovery.conf的存在,PG将不会成功启动。如果想让PG处于非主(non-primary)模式,您可以使用recovery.signal和standby.signal这两个文件。

您可以通过下面的连接获得更多的归档恢复(archive recovery)的信息:https://www.postgresql.org/docs/devel/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY

1. Just-in-Time (JIT)编译现在时默认开启的。

2. PG 12将不再允许使用WITH OIDs子句将OIDs添加到用户创建的表中。对于已经存在的使用WITH OIDs子句创建的表(例如列名是OID)的操作需要及时进行调整。

3. PG12中查询系统表时运行select *的指令,也会输出系统表的行的OID,而不再需要像之前的版本进行显示的指定OID列。

4. 其他特性

许多其他的新特性和改进已经被添加到PG 12中,其中一些特性和改变对于特定的用户来说,可能比上面提到的特性还重要。所以完整的新特性和新改进的请您查看Release Notes:https://www.postgresql.org/docs/devel/release-12.html。

5. BUG和兼容性的测试

每一个PG版本的稳定性,都非常依赖于您和您的团队使用您们的工作负载和测试工具对即将到来的版本进行不断的测试,从而帮助我们在PG 12公共版本发布之前找出更多的BUG和功能退步的地方。

由于这是一个测试版本,所以可能存在对于数据库行为、一些特性的细节以及各种接口(APIs)的一些细小的改变。您的反馈和测试将帮助我们最终确定该对新特性进行怎样的微调,所以恳请您尽快将其投入测试。用户测试的质量将帮助我们确定最终版本该合适发布。

一系列开放性问题已在PostgreSQL wiki对您公开。您可以使用如下的格式将bug在PG官网上告知我们:https://www.postgresql.org/account/submitbug/

6. 测试版本发布计划

这是PG 12的第一个测试版本,2019年年底发布最终版本之前,我们PG项目组将陆续根据测试需求发布更多的测试版本。

更进一步的详情请到如下网址了解:https://www.postgresql.org/developer/beta/

7. 相关链接

下载:https://www.postgresql.org/download/

测试版本信息:https://www.postgresql.org/developer/beta/

PG 12 Beta版本说明:https://www.postgresql.org/docs/devel/release-12.html

PG 12开放问题汇总:https://wiki.postgresql.org/wiki/PostgreSQL_12_Open_Items

提交BUG:https://www.postgresql.org/account/login/?next=/account/submitbug/

若翻译中出现一些技术上的错误,欢迎的大家在评论区指正,期待与您的互动!

燕鑫

云和恩墨交付工程师

Image placeholder
Lee丶
未设置
  57人点赞

没有讨论,发表一下自己的看法吧

推荐文章
PostgreSQL 12 正式发布:全面的性能提升

PostgreSQL12已经发布,该版本在各方面都得到了加强,包括显著地提升查询性能,特别是对大数据集,总的空间利用率方面。这个版本为应用程序开发人员提供了更多的功能,比如对SQL/JSON路径表达式

2019全球PostgreSQL生态报告出炉,PG为何从RDBMS中脱颖而出?

墨墨导读:本文是近期ScaleGrid发布的2019PG趋势报告,从不同的角度解读了PostgreSQL如何在众多优秀的RDBMS中脱颖而出,原文:https://scalegrid.io/blog/

树莓派 4 正式发布!硬件性能大提升:CPU提升3倍,支持USB3.0、蓝牙5.0、千兆以太网、4G LPDDR4、H.265

本文转自|EETOP树莓派(RaspberryPi)基金会,6月24日正式发布了RaspberryPi4ModelB。树莓派是全球知名的基本计算微型电脑,深受全球开发者、编程者、极客等人士的追捧和喜爱

PostgreSQL DBA(31) – Backup&Recovery#4(搭建流复制)

PostgreSQL通过流复制StreamingReplication可轻松实现高可用HA环境的搭建.本节简单介绍了搭建流复制环境的基本步骤.Step1主库:创建用户 创建复制用户replicator

GoWeb教程_05.4. 使用 PostgreSQL 数据库

PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如MySQL和Firebird),和对专有系统比如

中兴陈河堆:PostgreSQL在5G网管中的应用

2019年是中国5G试商用元年,各大电信运营商正在进行紧张的5G实验局测试。5G网络基于SDN/NFV虚拟化技术进行构建,组网架构非常复杂,由无线接入网、承载网、核心网等部分组成,包含了大量的网元设备

从Oracle到PostgreSQL,某保险公司迁移实践

摘要:去O一直是金融保险行业永恒的话题,但去O的难度之大也只有真正经历过的人才知其中的艰辛。此次笔者结合实际去O工作,对去O过程中碰到的DBLINK、SEQUENCE最大值、空串、SQL语句中的别名等

为什么你应当选择 PostgreSQL 而不是 Oracle?

本文转自| PostgreSQL中文社区 作者简介 Jan Karremans,EnterpriseDB的高级销售工程师。 译者简介 KevinZhan,深圳联友科技SA,目前负责公司部分核心系统应用

从 Oracle 到 PostgreSQL ,某保险公司迁移实践

作者 |章晨曦编辑 | 老鱼摘要:去O一直是金融保险行业永恒的话题,但去O的难度之大也只有真正经历过的人才知其中的艰辛。此次笔者结合实际去O工作,对去O过程中碰到的DBLINK、SEQUENCE最大值

为什么PostgreSQL越来越火?

PostgreSQL是一个开源的关系型数据库,在过去30年里,它的社区活跃度、忠诚度不断飙升,PostgreSQL变得越来越受欢迎。根据DB-Engines1月发布的年度数据库报告,PostgreSQ

sharding sphere 4.0.0-RC1版本 按年分表实战

1.shardingsphere4.0.0-RC1版本按年分表实战1.1.需求需要对日志表进行按时间划分表,由于用于后台系统,日志量预估不会太大,因此按年划分表经过我不断的查阅shardingsphe

刚刚,5G商用牌照正式发布,一共四张

大数据文摘出品作者:宋欣仪、魏子敏2019年6月6日,据央视报道,工信部向中国电信、中国移动、中国联通、中国广电发放第五代移动通信业务牌照(即5G商用牌照)。此举标志中国电信产业正式进入5G时代。中国

官宣:Oracle Database 19.3 本地部署版正式发布

OracleDatabase19c(19.3.0)forLinuxx86-64可以通过OTN或eDelivery下载了,对于已经使用19.2的用户,针对19.3.0forLinux&Solaris的R

借力中国数据库技术大会 达梦DM8数据库新品正式发布

5月8日—10日,第十届中国数据库技术大会(DTCC2019)如约而至。本届大会以“数据风云,十年变迁”为主题,设定2大主会场及21个技术专场,邀请了来自国内外互联网、金融、教育等行业百余位技术专家,

飞天 AI 平台重磅发布!阿里拥抱 AI 这五年

2014年,一个名为“iDST”的神秘部门的诞生开启了阿里的人工智能新征程,5年后,初长成的达摩院成为了阿里AI崛起的代表性力量。如今,阿里已跻身全球人工智能技术研发的第一梯队,成为时下这AI技术洪

全球首个AI宇宙模拟器发布!6亿光年宽度,还“自行”跑出了暗物质

大数据文摘出品作者:易琬玉、曹培信《创世纪》里,神用7天创造了这个世界。而现在,你可能也有机会体验这个过程,创造一个属于自己的宇宙。6月11日,SpaceEngine0.990版本在Steam平台发售

史上最快AI计算机发布!谷歌TPU V3的1/5功耗、1/30体积,首台实体机已交付

大数据文摘作品还记得8月份占据各家科技头条的有史以来最大芯片吗?这个名为CerebrasWaferScaleEngine(WSE)的“巨无霸”面积达到42225平方毫米,拥有1.2万亿个晶体管,400

爽到飞起!微软命令行工具发布!引诱开发者叛逃Mac,开源六小时冲上GitHub第二

晓查栗子乾明发自凹非寺转自量子位 |公众号QbitAIWoW!Awesome!MyGod!这是不少抱着Mac参加微软Build大会的开发者,看到命令行工具WindowsTerminal后的第一反应。随

3种可靠的物联网开发编程语言

物联网设备的普及程度持续上升,人们与物联网的联系愈加紧密。物联网为结合虚拟和现实世界提供了最大的平台。大多数支持IoT设备的命令都可以通过智能手机上的一个图标来实现。物联网的发展和成长不能归结为某一方

中国进入5G普及时代!三大运营商5G套餐正式公布,每月128起,联通最壕套餐599

大数据文摘出品作者:曹培信、刘俊寰5G手机已经卖了一批了,三大运营商的5G套餐却姗姗来迟。原本定于10月1日发布5G套餐,之后又推迟了一个月,并且中国三大运营商在公布服务价格之前,已预先向1000万用

公布!达摩院2020年十大科技趋势

刚刚,“达摩院2020十大科技趋势”正式发布!去年,我们预测的科技趋势正一一变为现实:AI芯片崛起、智能城市诞生、5G催生全新应用场景……科技新十年开启,AI、芯片、云计算、区块链、工业互联网、量子计

为什么SQL正在击败NoSQL,这对未来的数据意味着什么

导读:经过多年的沉寂之后,今天的SQL正在复出。缘由如何?这对数据社区有什么影响?看看本文的分析。以下为译文。自从可以利用计算机做事以来,我们一直在收集的数据以指数级的速度在增长,因此对于数据存储、处

Dubbo 稳定性案例:Nacos 注册中心可用性问题复盘

问题描述上周四晚刚回到家,就接到了软负载同学的电话,说是客户线上出了故障,我一听”故障“两个字,立马追问是什么情况,经过整理,还原出线上问题的原貌:客户使用了Dubbo,注册中心使用的是Nacos,在

Composer 镜像管理工具新版本 2.3.0 发布

照例附上项目地址:https://github.com/slince/composer-registr...经过一段时间开发,CRM新版本算是开发完成,在此次版本更新中主要涉及以下:增加镜像归属地功能

GORM 中文文档_4.5. 原生 SQL 和 SQL 生成器

运行原生SQL 执行原生SQL时不能通过链式调用其他方法 db.Exec("DROPTABLEusers;") db.Exec("UPDATEordersSETshipped_at=?WHEREidI