你距离PostgreSQL 14版本只有“一键之差”
在StackOverflow针对开发人员的2021年调研报告中,共有来自全球的72,517位开发人员参与调研,PostgreSQL被全球开发者们评选为“最想拥有的数据库管理系统”,由此可见开发人员对它的喜爱之情。
*数据来源:
https://insights.stackoverflow.com/survey/2021#most-loved-dreaded-and-wanted-database-want
长久以来,PostgreSQL凭借其可靠性和健壮性,早已在全球圈粉无数。在 DB-Engines 排名中,PostgreSQL是第一个也是唯一一个斩获三次 "DBMS of the Year" 奖项的数据库。伴随着众多 PGers 的期盼,9月30日 PostgreSQL全球开发组宣布“PostgreSQL 14版本正式发布”。作为云市场的领导者,阿里云也在第一时间跟进 PostgreSQL新版本研发和打磨。现在,你已经可以在阿里云数据库服务里选择PostgreSQL 14版本了。
一键大版本升级
如果你已经在使用阿里云数据库 RDS PostgreSQL 9.4-13版本,可以便捷地通过阿里云RDS PostgreSQL控制台提供的「大版本升级」功能,一键将你的PostgreSQL实例升级到14版本,和传统需要手动按文档操作的升级方式彻底告别。
阿里云数据库RDS PostgreSQL完全兼容开源的版本,将PostgreSQL 14的新特性带给你:
性能增强
从业务应用的性能表现上,PostgreSQL 14做了非常大的优化提升。
- 有大量连接的场景下,大幅提高了事务的吞吐量,在一些测试场景下,最高可达2倍的提升。新版本继续提升B-tree索引性能,降低频繁更新的表的B-tree索引膨胀。
- 分区表性能和功能持续增强,优化器分区裁剪能力提升,减少子分区subplan和重复的cached plans,减少内存使用,同时大幅提升只涉及少量分区的SQL性能;解绑分区新增 CONCURRENTLY 模式,消除锁表,消除解绑分区对在线业务的影响。
- 引入管道查询模式,提高较差网络环境下的数据写入吞吐,可以达到接近本地网络的数据写入吞吐性能。在高延迟网络连接或是有频繁更新操作的负载场景下,可以大幅提升系统性能。尤其适用于跨网段、跨公网或数据库网络访问延时较高,同时有较大的写入吞吐需求的时序、IoT类业务。
- TOAST 支持 lz4 压缩算法,可以提供更高的压缩比和更优的压缩性能,适用于所有业务场景,在有大字段表的场景中压缩性能提升明显,如text类型。
- 内置水平可伸缩的功能接口,外部表(FDW)持续增强,可以支持外部异步并行计算,尤其适用于分库分表的数据分析场景,多个实例或多个分片的数据需要并行分析的场景,提高多个实例并行计算的效率。支持会话级持久化foreign server 连接,提高分库分表场景的OLTP性能,而以往的版本每一个远程事务都需要重新创建一次远程库连接,无法支持OLTP高频小事务。
安全增强
安全的支持上PostgreSQL 14新增两大亮点特性。
- 新增 pg_read_all_data 和 pg_write_all_data 2个预定义角色,可以方便的设置只读、读写权限,提高DBA管理效率。
- 默认使用 SCRAM-SHA-256 认证方法,完全规避md5可能的密钥泄露和协议攻击问题,提高认证方式和密码认证安全性。
更丰富的数据类型和SQL
PostgreSQL一直以来对数据类型都有广泛的支持,丰富的插件可以让PostgreSQL在数据类型的处理上一专多长,PostgreSQL 14在此基础上持续优化。
- 时序场景下的类型增强,支持multi range类型,兼容range类型已知的所有操作符和索引,适用于物联网场景下存储传感器的指标波动范围。允许在一个value里面存储多个范围区间,同时支持范围的包含、相交、左、右、相邻等逻辑查询,支持索引加速。增加date_bin函数,按时间间隔打点聚合,简化打点的算法,适用于时序场景、分析场景。
- 递归图式搜索增加广度优先、深度优先语法和循环语法,简化广度优先、深度优先的语法实现,增加循环检测的SQL写法,适用于社交、风控、图式数据、图谱等场景。
- 增加了一种新的搜索算法,tid range scan扫描方法, 按HEAP表的物理存储数据块地址进行搜索。支持自定义业务层的并行数据扫描逻辑、随机数据扫描逻辑,允许用户输入需要扫描指定数据块的范围。结合rr snapshot export支持一致性单表并行导出,全表并行无锁冲突的更新。适用于通用场景,尤其是高并发场景以及有大数据吞吐计算场景。
- 另外,适用于通用场景下的JSONB下标语法、存储过程OUT参数均有支持。
更便捷的数据库管理
PostgreSQL 14在提高DBA工作效能上做足了工作,提升DBA幸福感。
- 垃圾回收增强,concurrently模式创建索引不会引起垃圾膨胀,降低OLTP业务的垃圾膨胀概率。
- 新增pg_stat_progress_copy视图,支持copy导入数据进度监控 ,导入进度和速度可观测。
- 新增 replication slot 统计信息视图 ,数据库WAL日志相关的统计信息以及每个slot的统计信息可观测。
- pg_locks视图新增指标 waitstart,可跟踪锁等待开始时间,掌握更多锁等待细节,例如等待时长。
- 新增 pg_stat_database 多个统计指标,数据库级别的活跃时间、空闲时间、会话量等统计信息可观测,进而判断数据库是否达到瓶颈。
- 增加SQL硬解析和软解析次数统计,便于分析SQL解析层消耗和优化。
- 支持wal日志buffer write, fsync IO等待时长统计 , 方便了解IO资源使用情况和WAL瓶颈分析。
流复制与备份
逻辑复制增强,长事务逻辑复制增加streaming接口,逻辑复制支持流式decoder和发送,无需等待事务结束,大幅度降低大事务、长事务的复制延迟,适用于多机房部署、单元化部署、跨库同步订阅数据场景。同时逻辑复制sync table data阶段支持多线程,允许同步全量数据的同时接收wal逻辑日志,可以缩短大表首次同步到达最终一致的耗时。alter subscription语法增强,支持add/drop publication,提高订阅端的操作便捷性。
以上为部分开源版本的重要特性,在兼容开源的基础上,阿里云数据库RDS PostgreSQL 14还具备了老版本的自研产品能力。
Ganos时空信息引擎系列插件
支持了Ganos时空信息引擎系列插件,对空间/时空数据进行高效的存储、索引、查询和分析计算。Ganos引擎历经不同GIS场景磨炼,使用简单高效,是地理位置信息领域最佳实践之一。
SGX全加密数据库
支持全加密数据库插件,使用全加密数据库后,数据在用户侧加密后传入云数据库,数据库中存储的、网络中传输的、内存中缓存的都是加密后的数据,数据拥有者以外的任何人无法接触到用户的明文数据,端到端全链路避免数据泄漏的发生。全加密数据库非常适用于金融、医疗、政务、营销等隐私、敏感数据加密场景。
逻辑复制槽故障高可用(Logical Replication Slot Failover)
PostgreSQL在主实例创建的Replication Slot,不会通过流复制协议同步到备实例。当实例发生主备切换,会造成Replication Slot丢失,进而导致逻辑订阅中断。RDS PostgreSQL逻辑复制槽故障转移功能可以将所有的逻辑复制槽从主实例同步到备实例,实现逻辑复制槽的故障转移。
文章转自公众号:阿里云数据库