PostgreSQL 9.4 版本增强了灵活性、扩展性、性能

  • 李士窑

2014 年 12 月 25 日

话题:性能调优语言 & 开发架构

PostgreSQL 全球开发组经过大半年的努力,在发布了 PostgreSQL 的三个 beta 版本和一个 RC 版本后。近日,PostgreSQL 全球开发组宣布PostgreSQL 9.4 正式版本发布。PostgreSQL 9.4 引入新类型 JSONB;新版本的 Logical Decoding(逻辑复制的基础模块)提供了用于实现复制功能的新 API,并改进了复制的管理;该版本还带来了很多性能方面的改进。PostgreSQL 9.4 添加的这些新特性增强了 PostgreSQL 的灵活性、扩展性和提升了其整体性能。

PostgreSQL 9.4 Beta 1 版本带来了全新的 NoSQL 特性,即引入了新类型 JSONB,从而使得 PostgreSQL 已经升级成为一款混合型(SQL 和 NOSQL)数据库。当前,用户即可以把 PostgreSQL 作为关系型数据库使用,也可以作为 NoSQL 数据库使用。PostgreSQL 在提供强大功能的同时,还具备了 NoSQL 数据库固有的灵活性、可扩展性等特性。

PostgreSQL 9.4 的 Logical Decoding 新提供了一个用来读取、过滤和操作 PostgreSQL 复制数据流的 API,该 API 是新复制工具的基础,如支持创建数据库集群的双向复制等功能。同时 PostgreSQL 9.4 还增强了复制系统中的一些其他功能,如Replication slots、延迟副本以及对副本服务器的管理和利用率的提高。

PostgreSQL 9.4 还带来了很多性能方面的改进,如改进了 GIN 索引,从而使得性能提高了 50% 左右,甚至高达 3 倍;新的 Data Change Streaming API 能够对复制流中的数据进行编码和转换;新增了实时刷新(Refresh Concurrently)实体视图和及时更新数据报告的功能;更快的并行记录数据库事务日志;支持 Linux 服务器大内存属性的配置等等。

PostgreSQL 9.4 正式版现已提供多个平台下的二进制、源码、第三方预安装环境等方式的下载,读者还可以通过 PostgreSQL 9.4 正式版的发布说明获得更多信息。更多关于 PostgreSQL 9.4 具体新特性,请读者其官方提供的Wiki 页面

PostgreSQL 是一个开源、面向对象的关系数据库服务器,它基于 BSD 开源协议下发行。它为大家提供了相对其他开放源代码的数据库系统 (如 MySQL 和 Firebird),和专有系统 (如 Oracle、Sybase、DB2 和 SQL Server) 之外的另一种选择。作为关系型数据库 PostgreSQL 已经获得社区的认可,作为 NoSQL 数据库,其性能表现也不亚于 MongoDB。近日,基于 PostgreSQL 的企业级产品与服务的提供商EnterpriseDBPostgreSQL 和 MongoDB 的性能作了比较,结果表明 PostgreSQL 在查询、加载、插入方面均优于 MongoDB。

PostgreSQL 9.4 正式版本发布后,就引起了各大社区用户的讨论。Reddit 上已经有 200 多条相关评论,很多用户针对 PostgreSQL 9.4 提供的一些新功能进行了称赞。用户unquietcode认为 PostgreSQL 9.4 正式版发布是圣诞节最好的礼物,但是用户myringotomy表示对 PostgreSQL 还没有实现对多主机或集群支持的遗憾之意。

用户NaNiwa_Twitter评论到:

自己已经使用PostgreSQL 9.4 beta版本一段时间了,json_* 函数真是强大。用户可以像使用一个关系数据库存储非结构数据,无需在代码中处理即可实现创建 JSON 格式数据的返回

用户doublehyphen评论到:

自己最喜爱PostgreSQL 9.4的新特性是用来进行聚合计算的 FILTER 语句,在自己的代码中有很多使用 CASE 语句来实现聚合的功能地方。

SELECT agg_fn(val) FILTER (WHERE condition) FROM ...SELECT agg_fn(CASE WHEN condition THEN val END) FROM ..好多了。

Hacker News上也有了相关评论,用户odeaken 提出了 PostgreSQL 是否能够打败 MongoDB 的疑问,用户sarciszewski认为 PostgreSQL 9.4 正式版本发布是数周来听到的最好的消息。

用户gfodor评论到:

JSONB变得越来越受关注了,但是逻辑解码也是一个非常令我兴奋的功能特性。它能够捕获事务处理过程,并将日志记录进行持久化以作为流数据处理,需要构建一个统一的日志系统架构的基本工具。如果用户使用 Hadoop 进行工作,那么他们也可以尝试相似的方式使用记录数据库的快照等数据,使用 PostgreSQL 的 JSONB 更加合适,这真是一个令人兴奋的消息,在此,恭喜 PostgreSQL 团队。

用户davidgerard评论到:

PostgreSQL将会是一个热点技术,主机服务提供商正在从 Oracle 和 MySQL 切换到PostgreSQL, Oracle成本昂贵,MySQL 性能不能满足需求,并且更多的客户也在倾向于 PostgreSQL。自己还试用了 PostgreSQL,它安装和使用起来非常简单,在此,真的期望更多的 Web 站点使用 PG,而不是 MySQL


感谢郭蕾对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

性能调优语言 & 开发架构