得益于全球开发者的贡献,PostgreSQL已经成为一款拥有众多用户和贡献者、成熟稳定的开源数据库。最新版本,PostgreSQL 17,于2024年5月23日发布首个Beta版本,带来了多项性能优化和新功能。 PostgreSQL 17在性能优化方面有显著提升,包括引入新的数据结构和内存管理机制,使得垃圾回收过程更高效,大幅减少内存使用和执行时间。同时,优化了I/O接口,提升了顺序扫描和运行ANALYZE的性能。此外,新增配置参数,控制事务、子事务和multixact缓冲区大小,以及利用Planner统计信息和CTE结果中的排序顺序优化查询速度,缩短包含IN子句和B-tree索引查询的执行时间。对于带有NOT NULL约束的列,优化了IS NOT NULL和IS NULL查询,提高了效率。新版本还支持并行构建BRIN索引,并通过改进WAL锁管理,在高并发写入场景下实现性能提升两倍。另外,新版本引入更多显式SIMD指令,如AVX-512,为bit_count等函数提供了硬件加速支持。 在分区和分布式工作负载方面,PostgreSQL 17增强了灵活性,支持分区表使用身份列和排它约束,并允许使用postgres_fdw将EXISTS和IN子查询下推至远端服务器以提升性能。新版本为逻辑复制添加了功能,简化了高可用架构和升级流程,无需删除复制槽,支持Failover控制,提供了更好的高可用性管理。此外,逻辑复制的订阅者现在可以使用hash索引进行查找,pg_createsubscriber命令行工具也用于在使用物理复制的副本从库上创建逻辑复制。 在开发者体验方面,PostgreSQL 17深化了SQL/JSON支持,新增了JSON_TABLE功能,支持将JSON转换为标准表,以及SQL/JSON构造函数和查询函数。新版本提供了更丰富的JSONPath实现功能,包括将JSON值转换为不同数据类型。MERGE命令现在支持RETURNING子句,便于处理修改后的行,新增merge_action函数识别MERGE命令的修改部分,并允许更新视图。COPY命令用于高效批量加载和导出数据,性能最多提升两倍,支持在源与目标编码匹配时的性能提升。COPY命令新增ON_ERROR选项,允许在插入错误时继续执行。新版本还支持使用libpq API使用异步和安全的查询取消方法。内置的排序规则提供程序提供与C排序规则类似的排序语义,但编码为UTF-8,确保了排序结果的跨系统一致性。 在安全方面,PostgreSQL 17引入了新连接参数sslnegotiation,允许在使用ALPN时直接进行TLS握手,减少网络往返。新增用户认证时触发的EventTrigger,以及在libpq中新增PQchangePassword API,实现客户端自动对密码进行哈希,提升安全性。新版本还添加了预定义角色pg_maintain,赋予用户执行多种维护权限,并确保search_path在执行维护操作时的安全性。最后,支持使用ALTER SYSTEM设置系统无法识别的未定义的配置参数。 在备份与导出管理方面,PostgreSQL 17支持增量备份使用pg_basebackup,并引入了pg_combinebackup实用工具用于备份恢复过程中的备份合并。新版本为pg_dump新增了--filter参数,允许指定文件进一步指定dump过程中包含或排除的对象。 在监控方面,EXPLAIN命令增加了SERIALIZE和MEMORY选项,分别展示数据序列化耗时和优化器内存使用情况,同时显示I/O读写耗时。新版本统一了pg_stat_statements中CALL的参数,减少了频繁调用的存储过程记录数。VACUUM进度报告现在显示索引垃圾回收的进度,引入了新视图pg_wait_events提供关于等待事件的描述,与pg_stat_activity共同使用以深入了解活动会话出现等待的原因。pg_stat_bgwriter视图中的信息被拆分到了新的pg_stat_checkpointer视图中。 HashData研发团队在PostgreSQL社区中活跃多年,参与了多个版本的数十项开源贡献,为性能改进和提升提供了关键支持。在最新发布的PostgreSQL 17版本中,HashData研发团队再次贡献了重要代码。例如,团队实现了一个全新的功能,极大地提升了批量导入数据的便捷性。COPY FROM命令允许用户为数据的所有列设置强制为空或不为空,显著提高了数据导入效率。团队还清理了多余的代码,优化了PostgreSQL的解析树,提升了代码简洁性和执行效率。此外,HashData研发团队积极参与代码审查,确保了新版本的稳定性和性能。 展望未来,PostgreSQL 17 Beta1版本的发布标志着这款开源数据库在性能、功能和安全方面取得了显著进展。酷克数据HashData研发团队以其技术创新和社区贡献,为开源世界带来了积极影响。CloudberryDB产品则进一步展示了PostgreSQL的核心优势,以其面向分析和AI场景的特性,满足了现代数据处理的需求。CloudberryDB不仅支持单机部署,还能够通过插件扩展为云原生架构,提供高弹性、高并发、湖仓一体化、扩缩容灵活等优势,支持SQL分析、机器学习、全文检索、HTAP等任务,通过数据存储加密、联合身份验证等技术,为企业构建高效稳定的数据底座提供了有力支持。