PostgreSQL 16发布,提升了包括AI在内的工作负载性能
今天发布的 PostgreSQL16 是一款开源数据库技术,也被广泛称为 Postgres。自1996年首次发布以来,PostgreSQL一直在不断迭代和发展,成为最广泛使用和部署的开源数据库之一。这个开源项目得益于强大的贡献者社区和供应商的持续支持。
主要的云服务提供商,如微软Azure、谷歌云平台(GCP)和亚马逊网络服务(AWS),都提供了基于PostgreSQL的托管版本。此外,还有许多商业供应商,如EDB和Percona,提供基于PostgreSQL的企业级和云平台解决方案。
PostgreSQL本质上是一种关系型数据库技术,但近年来它的用途已经扩展到作为分析数据库技术(如谷歌的AlloyDB)的基础,并广泛用于矢量数据库功能。
通过PostgreSQL16,这个开源数据库得到了增强,新增功能将提升各种工作负载的性能。更新的功能包括数据的批量加载和查询、并发性改进以及更多支持并行查询的选项。此次发布还扩展了PostgreSQL对SQL/JSON标准的支持,并提供了更多大规模运行逻辑复制的功能。
PostgreSQL全球开发团队的核心成员和贡献者之一Jonathan Katz在接受VentureBeat采访时表示:“PostgreSQL16包含许多性能增强功能,可以改善各种规模的日常工作负载。”
在PostgreSQL16中,数据库的核心是数据,确保数据能够被复制和监视一直是PostgreSQL不断改进的方面之一。
其中一个更新功能是逻辑复制的一系列增强功能。Katz解释说,PostgreSQL16允许用户从备用节点设置逻辑复制。这个功能对于那些已经在主要实例上承载重要工作负载并希望将逻辑复制卸载到不太繁忙的备用节点的用户非常有帮助。
Katz进一步表示:“PostgreSQL16还支持在订阅者上并行应用大事务,这可以加快回放速度,使数据更快地在订阅者上可用。”
长期以来,PostgreSQL一直拥有多种本地内置的数据库操作监视功能。通过添加pg_stat_io度量标准,这些功能得到了扩展。Katz解释称,pg_stat_io允许数据库管理员查看I/O(输入/输出)利用率统计数据,例如总读/写操作次数、读/写的数据量等。
Katz表示:“这个新视图提供了更深入的了解,了解您的PostgreSQL实例与存储层的交互情况。”数据库管理和安全性已得到加强
尽管扩展和监视数据非常重要,但确保数据安全同样重要。在 PostgreSQL 16 中,我们进行了一系列更新,旨在提高数据库的安全性。
在安全性方面,最重要的更新之一涉及 PostgreSQL 的权限管理功能。数据库中的权限定义了用户对给定数据库可以执行的操作以及不能执行的操作。在以前的 PostgreSQL 版本中,许多核心数据库管理操作都需要一个特殊的“超级用户”,即拥有对所有内容的完全访问权限的用户。对于小型数据库部署来说,这可能没有问题,但在大型环境中,这很快成为一个问题。
在 PostgreSQL 16 中,我们引入了更细粒度的权限控制机制,用于定义数据库角色的权限。通过 CREATE ROLE 命令,可以定义数据库角色,并指定与该角色相关联的一组权限,以允许用户执行特定任务。
EDB(EnterpriseDB)的高级产品经理 Adam Wright 在接受 VentureBeat 的采访时表示:“简单来说,新的角色管理变化提高了安全性,限制了 CREATE ROLE 以及修改其他角色权限的能力。”
他解释说,新的角色管理变化解决了一个问题,即拥有 CREATE ROLE 权限的用户被允许对其没有创建的角色进行修改,包括在某些情况下是超级用户角色。现在,通过添加 ADMIN OPTION 权限,对这些角色所做的更改需要请求被更改的角色拥有 ADMIN OPTION 权限。总的来说,这提供了更多对数据库的控制和安全性。
此外,根据 EDH(EnterpriseDB)基于 PostgreSQL 的 BigAnimal 云数据库服务的经验,Wright 还表示 EDH 贡献了一些与角色成员身份相关的变化。
Wright 告诉我们:“这些变化使得作为服务提供商和管理员,更加精细地控制在 PostgreSQL 中的用户(包括管理员)可以进行哪些操作。”
人工智能工作负载如何适应 PostgreSQL?
PostgreSQL 在支持矢量数据库工作负载方面变得越来越流行,通常使用 pgvector 扩展来实现。
Katz 表示:“PostgreSQL 的一个伟大之处在于其可扩展性,它允许开发人员快速构建像 pgvector 这样的扩展,以支持 AI/ML 数据的生产工作负载。”
“PostgreSQL 包含了构建自定义数据类型、索引方法和表存储方法的框架,在 PostgreSQL 16 中还增强了批量加载功能,这使得 PostgreSQL 更容易与 AI/ML 应用场景一起使用。”