PostgreSQL 13 Beta 1 发布,大年夜量新特点

xplanet
 xplanet
发布于 2020年05月23日
收藏 8

六一兴趣技巧问答,“秃顶”要从娃娃抓起!>>>

PostgreSQL 13 的第一个 Beta 版本发布了,此版本更新亮点包含:

功能性

PostgreSQL 13 中有很多新功能可以赞助进步 PostgreSQL 的全体性能,同时使开辟应用法式榜样变得加倍轻易。

B 树索引(PostgreSQL 的标准索引)在处理反双数据方面取得了改进。这些加强功能有助于减少索引大年夜小并进步查找速度,特别是关于包含反复值的索引。

PostgreSQL 13 增长了增量排序,当从查询的早期部分排序的数据曾经被排序时,它可以加快数据的排序。另外,带有 OR 子句或 IN/ANY 常量列表的查询可以应用扩大的统计信息(经过过程 CREATE STATISTICS 创建)。

在此发行版中,PostgreSQL 的分区功能增长了更多改进,包含增长了在分区表之间直接停止联接的情况,这可以延长整体查询履行时间。分区表示在支撑内行级触发器(row-level triggers)之前,并且分区表示在可以经过过程逻辑复制完全复制,而不用发布单个分区。

PostgreSQL 13 为应用诸如 FETCH FIRST WITH TIES 之类的功能编写查询供给了更多便利,该功能前往与最后一行婚配的任何其他行。还为 jsonpath 查询添加了 .datetime() 函数,该函数将主动将类似日期或类似时间的字符串转换为恰当的 PostgreSQL 日期/时间数据类型。

如今,生成随机 UUID 乃至加倍轻易,由于可以应用 gen_random_uuid() 函数而无需启用任何扩大。

Administration

PostgreSQL 13 最令人等待的特点之一是 VACUUM 敕令可以或许并行处理索引。可以应用 VACUUM 敕令上的新 PARALLEL 选项(或 vacuumdb 上的 --parallel)来拜访其功能,该选项许可用户指定用于清理索引的并行任务法式榜样的数量。要留意的是,这不实用于 FULL 选项。

reindexdb 敕令还经过过程新的 --jobs 标记添加了并行性,它可以指定在为数据库重新索引时要应用的并发会话数。

PostgreSQL 13 引入了“可信扩大”(trusted extension)的概念,该概念许可超等用户指定(只需具有 CREATE 特权便可以在其数据库中装置的)扩大。

该版本包含更多监控 PostgreSQL 数据库中活动的办法:PostgreSQL 13 如今可以跟踪 WAL 应用情况统计信息、流式基本备份的进度,和 ANALYZE 敕令的进度。pg_basebackup 还可以生成一个清单,该清单可用于应用新对象 pg_verifybackup 来验证备份的完全性。如今也能够限制复制槽保存的 WAL 空间量。

pg_dump 的新标记 --include-foreign-data 在转储输入中包含来自外部数据包装法式榜样援用的办事器数据。

pg_rewind 敕令在 PostgreSQL 13 中也有所改进。除 pg_rewind 主动履行崩溃恢复外,如今可以应用 --write-recovery-conf 标记应用它来设置设备摆设备用 PostgreSQL 实例。 pg_rewind 也能够应用目标实例的 restore_command 来获得所需的预写日记。

安然性

PostgreSQL 在此最新版本中持续改进安然功能,引入了一些功能来赞助进一步安然地安排 PostgreSQL。

libpq 是为 psql 和很多 PostgreSQL 连接驱动法式榜样供给动力的连接库,新版本带来了几个有助于保护连接的新参数。PostgreSQL 13 引入了 channel_binding 连接参数,该参数许可客户端指定他们欲望将通道绑定功能作为 SCRAM 的一部分。另外,应用暗码保护的 TLS 证书的客户端如今可以应用 sslpassword 参数指定其暗码。 PostgreSQL 13 还增长了对 DER 编码证书的支撑。

PostgreSQL 外部数据包装器(postgres_fdw)还取得了一些若何保护连接安然的加强功能,包含应用基于证书的身份验证连接到其他 PostgreSQL 集群的才能。另外,无特权的帐户如今可以经过过程 postgres_fdw 连接到另外一个 PostgreSQL 数据库,而无需应用暗码。

其他亮点

PostgreSQL 13 持续改良 Windows 的可操作性,如今在 Windows 上运转 PostgreSQL 的用户可以选择经过过程 UNIX 域套接字停止连接。

PostgreSQL 13 文档增长了术语表,以赞助人们熟悉 PostgreSQL 和惯例数据库概念。同时,表中的函数和运算符的显示也停止了大年夜量修改,这有助于进步 Web 和 PDF 文档的可读性。

用于性能测试的 pgbench 实用法式榜样如今支撑对“帐户”表停止分区的功能,从而可以更轻松地对包含分区的任务负载停止基准测试。

在输入数据方面,psql 包含了 \warn敕令,该敕令类似于 \echo 敕令,只是 \warn 将其发送到 stderr。

发布告诉布告:https://www.postgresql.org/about/news/2040/

本站文章除注明转载外,均为本站原创或编译。迎接任何情势的转载,但请务必注明出处,尊敬他人休息共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://aledoyoga.com]
本文标题:PostgreSQL 13 Beta 1 发布,大年夜量新特点
加载中

出色评论

mymbrooks
mymbrooks
等待,postgresql 是今朝最强大年夜的开源数据库,新项目应用优胜
依剑_听雨
依剑_听雨
性能好,稳定 说的就是 postgresql 了。 oracle 特点也异常多
Open不Open
Open不Open
比 MySQL 强大年夜,好用
DBKangaroo
DBKangaroo
DBKangaroo 曾经预备好为各位 PostgreSQL 的大年夜神们办事啦。
Feng_Yu
Feng_Yu
MySQL睁大年夜眼睛看看,这才叫更新!如今的MySQL就跟挤牙膏似的

最新评论(25

haitaosoft
haitaosoft
阿里的那个,为甚么不在pgsql上改呢?
无敌小田鸡
无敌小田鸡
临盆体系用了几年了,稳定,历来没有宕过机
开源中国首席罗纳尔多
开源中国首席罗纳尔多
您好,请问B 树为甚么这么牛逼?甚么都用它优化性能?
墨子Zhai
墨子Zhai
官方mysql 版本有社区版,专业版(收费), 企业版(收费),企业集群版(收费)等。
pg 就是一个社区版, 还收费。
小桥河西
小桥河西
第一条特点,B 树索引对低基数字段的优化,最高可以节俭10倍存储空间,并且还不影响性能。这是其它同类数据库都没有的特点,异常值得等待。
eechen
eechen
怎样对待在最经常使用的根据索引停止"范围查询"这个逻辑上,B树被B+树碾压的成绩?
关于不反复的自增主键或许唯一键,除紧缩还有甚么黑科技可以减少?

关于索引和数据的组织架构,我果断不移地站B+树.
MySQL: 应用B+树组织索引和数据,数据只位于B+树的叶子节点,一切叶子节点构成一个双向链表.
PGSQL: 应用B树存储索引,应用表堆(table heap)存储数据.
小桥河西
小桥河西
你说的这个成绩是索引组织表和堆表的差别。这两种索引的组织构造,我认为各有优势,不存在一个碾压另外一个的情况。
你可以用sysbench跑一个write的场景比较一下,MySQL的性能离PG的差距不是普通的大年夜。

别的,索引组织表不合适应用比较长的字段或字段组合做主键,普通的MySQL最好实际建议应用一个无营业意义的字段做主键。但这就带来了一个新的成绩。当应用应用原始的“有营业意义”的唯一标识记录的字段查询时不能不走二级索引,也就是说MySQL外部要停止两次索引扫描。这就掉去了索引组织表本来的优势。

最后,MySQL以外的主流关系数据根本也都是堆表。Oracle中乃至堆和索引组织表二者都支撑。然则据我懂得,用户在oracle中应用堆表加倍广泛,应用索引组织表的案例相对较少,你可以找一下身边的oracle的dba求证一下,他们为甚么不应用索引组织表?
eechen
eechen
MySQL(InnoDB)一切写操作(包含单条INSERT或许UPDATE语句)都邑被算作事务来处理.
是以,要比较不合数据库的写性能,先要肯定二者都是事务写,不然没有可比性.
并且,最比如较并发写,而不是串行的次序写或许开启事务的批量写,
由于并发写才是最切近实际的场景.

二级索引要不要走主键索引去定位数据,跟B+树没有任何干系.
跟引擎选择的索引构造是"主键集合"照样"非集合索引"有关系.
InnoDB和MyISAM都是用B+树组织索引和数据.
然则,InnoDB选择的是"主键集合",MyISAM选择的是"非集合索引".
也就是说,MyISAM的二级索引的叶子节点,存储的是指向数据的指针.
但集合索引的好处是数据地位改变时,可以简化索引的保护,只须要保护主键索引.

既然你的营业都是针对你定义的"营业主键"停止读写.
那你就应当把这个"营业主键"算作InnoDB表的主键.
别强行把所谓的InnoDB推荐的自增ID作为主键算作教条,毕竟建议不是教条.
自增ID的好处是次序写,这点不论是B树照样B+树,自增主键都有益于进步写入性能.

代替EXT4成为RedHat的默许文件体系的XFS采取的也是B+树构造.
RedHat作为最有名的Linux开辟商,他们在Fedora上测验测验过B树的Btrfs,但终究照样选择XFS.
小桥河西
小桥河西
btree只是一个统称。PG的btree索引就是b+树。索引项只放在叶子节点,叶子节间有链接。你能够被下面中文的名词翻译误导了。pg btree的外部构造可以参考下面的链接。
https://postgrespro.com/blog/pgsql/4161516

关于写操作的测试,不知道你有没有效过sysbench这个对象。可以跑一下外面的oltp_write_only.lua和oltp_read_write.lua。这两个都是随机的点查询SQL,并发数可以本身调,外面怎样跑的SQL也能够翻开lua文件看一下。
固然你有兴趣的话也能够趁便跑一下其它测试。其实sysbench的超简风格的SQL,对MySQL异常有益,然则即使如许的benchmark测试,MySQL也没有哪一项是“碾压”PG的。大年夜部分测试项固然互有高低,但根本在同一水准。但是一旦触及到大年夜量写入,用“pg碾压MySQL”如许的表述能够也不为过。根据我们本身的测试,在推敲到控制不产生主从延迟的情况下,MySQL的写tps逾越1w就很辛苦了,pg可以轻松做到10w+。

有些人依然有PG在OLTP场景性能差的缺点印象,这的能够来源于若干年前的老皇历,还有的能够来源于个别不负义务的人的恶意抵毁。建议本身着手实际体验一下。参数调优可以参考下面的链接(固然这只是个很简单的版本)
https://pgtune.leopard.in.ua/
eechen
eechen
B+树的特真就是只在叶子节点存储数据.
你肯定PostgreSQL是在叶子节点存储数据?
我认为没有跟你评论辩论下去的须要了.
自己纯属虚拟
自己纯属虚拟
答复 @eechen : 实际出真知
eechen
eechen
答复 @自己纯属虚拟 : 黑MySQL之前,实在其实建议PGSQL粉先去实际实际.
小桥河西
小桥河西
答复 @eechen : 确切跟你没有评论辩论下去的须要
eechen
eechen
弥补一下,集合索引还有个好处,就是根据浅显索引查询主键时,可以触发"覆盖索引"优化,在帮助索引中完成查询.比如,根据用户表中"地区"这个索引,查询"用户编号"这个主键.
木九天
木九天
6
DBKangaroo
DBKangaroo
DBKangaroo 曾经预备好为各位 PostgreSQL 的大年夜神们办事啦。
Open不Open
Open不Open
比 MySQL 强大年夜,好用
mymbrooks
mymbrooks
等待,postgresql 是今朝最强大年夜的开源数据库,新项目应用优胜
Feng_Yu
Feng_Yu
MySQL睁大年夜眼睛看看,这才叫更新!如今的MySQL就跟挤牙膏似的
码工农
码工农
或许dba须要这些特点;码农不须要那么多花梢的器械,性能好稳定便可以了
依剑_听雨
依剑_听雨
性能好,稳定 说的就是 postgresql 了。 oracle 特点也异常多
码工农
码工农
mysql简单,postgresql有一堆码农用不上的功能,还是以变复杂了。
依剑_听雨
依剑_听雨
假设真是如许的话,建议用 mongodb 或许 sqlite3
h
hxy-go
postgresql其实简单好用,功能丰富。开辟用oralce十多年了,再不想转归去用oracle,mysql功能稍微弱点,然则mysql8也强了,感到这些数据库之间的差距愈来愈小了,所以哪个好应用哪个,能带来效益就行。
依剑_听雨
依剑_听雨
mysql 不如许更新的一个重要缘由,是怕抢 oracle 的客户,毕竟都是一个团队出的。固然也有它汗青遗留的成绩。
前往顶部
顶部