POSTGRESQL 14 还有很多同学没有使用,目前大多使用的版本在9.4 ,10 , 12 , 13 这几个版本,但POSTGRESQL 更新的步伐不会停止,POSTGRESQL 15会有什么新的功能值得期待。
1 Merge SQL COMMAND
merge sql command 的命令在商业数据库是支持的,那么通过两个表,原表和目的表的查询后,将结果更新到目的表的方式,可以解决很多的一些复杂程序的对这方面的需求。
代码语言:javascript复制MERGE INTO target AS t
USING source AS s
ON t.tid = s.sid
WHEN MATCHED AND t.balance > s.delta THEN
UPDATE SET balance = t.balance - s.delta
WHEN MATCHED THEN
DELETE
WHEN NOT MATCHED AND s.delta > 0 THEN
INSERT VALUES (s.sid, s.delta)
WHEN NOT MATCHED THEN
DO NOTHING;
MERGE可用于常规表、分区表和继承层次结构,包括列和行安全强制,以及对行和语句触发器和过渡表的支持。功能首先会支持在PL/PGSQL 中使用。
2 更多JOSN 的函数,POSTGRESQL 15 在对JOSN 的数据的处理上是进行了全方面的增强,下面就是三个要被添加进POSTGRESQL 15的JSON 函数
JSON_EXISTS()测试应用于jsonb值的jsonpath表达式是否产生任何值。
JSON_VALUE()必须返回单个值,如果试图返回多个值,则会发生错误。
JSON_QUERY()必须返回一个json对象或数组,并且有各种用于处理标量或多值结果的WRAPPER选项。这两个函数都有处理EMPTY和ERROR条件的选项。
3 针对POSTGRESQL FULL PAGE 的工作是其他数据库使用者吐糟的一个地方,如同MYSQL的 DOUBLE WRITE, PG15 针对这个问题提供了两种对FULL PAGE 的压缩功能,LZ4 , ZSTD 等两个压缩方式。
4 创建OBJECT 时默认在PUBLIC schema中可以创建任何的表或其他OBJECT 对象,这点事一个非常糟糕的事情,让POSTGRESQL 在其他数据库使用者的感受上是不可以接受的,因为太奇葩了,没有安全性,在PG15 没有权限也可以在任何数据库不进行PUBLIC SCHEMA 权限回收的情况下,也不可以进行OBJECT 的创建。
5 pg_basebackup 命令添加了压缩的功能,针对备份可以选择直接进行压缩
6 在使用distinct 命令的情况下,可以支持并行的查询,对于distinct 操作提供更高效率的查询支持
7 提供类似MYSQL 的 MYSQLBINLOG 功能, 可以支持用户自己解析WAL 文件,将其转换成人可以读取的内容,pg_waldump ,这个功能可以大大提升利用PGWAL 数据库恢复的方式方法,这属于一个值得期待的功能。
8 提供了一些之前日志无法记录的信息,checkpoint 操作可以是非SUPERUSER 等等一些方便信息查询和操作的功能。
PG 15 从2021年6月28日开始开发,截止目前PG15 预估将在2022年年底将发布此版本。