PostgreSQL 是一种著名的开源数据库。最近 PostgreSQL 全球开发小组发布了最新的 9.2 版本,对性能做出了极大提升,并增加了对 JSON 的内建支持。
早在今年五月份发布 beta 版的时候,该小组的首席数据工程师 Ines Sombra 就做出承诺:
PostgreSQL 9.2 会带有本地的 JSON 支持,新特性涉及到索引、复制和性能提升等多方面。
PostgreSQL 9.2 支持水平扩展到 64 个核心,能够进行仅对索引(index-only)的扫描,并降低对 CPU 电力的消耗,从而显著改善了大多数工作负载下的可伸缩性和开发者的灵活性;在垂直可伸缩性方面的改善让 PostgreSQL 可以更有效地应用大型服务器上的硬件资源,在锁管理、写入效率、仅对索引的访问以及其他低级别的操作让数据库引擎能够处理更大量的工作负载。
这些性能上的改善体现在数字上意味着:
- 每秒最多 350,000 次读取查询(快了 4 倍多)
- 针对数据仓库查询的仅对索引的扫描(快了 2-20 倍)
- 每秒最多 14,000 次数据写入
另外,PostgreSQL 9.2 还让开发的灵活性做出了更进一步的支持,它包含了对 Range 类型和 JSON 的支持,让开发者能够以完全不同的方式来使用 PostgreSQL。
Range 类型让开发者可以创建更好的与日历相关、科学和财务的应用程序。还没有其他主流数据库支持这种特性;在 PostgreSQL 中,查询结果能够以 JSON 数据类型的格式返回。用户可以把这种技术和 PL/V8 Javascript 和 PL/Coffee 数据库编程扩展以及可选的 HStore key-value 数据库组合在一起,把它作为“NoSQL”文档数据库来使用,同时还保留了 PostgreSQL 的可靠性、灵活性和性能上的优势。
新的版本发布之后,国内外的开发者都表达了自己的意见。
arfa_zhang 第一时间对 PostgreSQL 9.2 在性能方面的表现做了测试:
postgresql 9.2 发布后, 利用以前的测试环境做了一个对比测试, 单从数据上来看,pg9.2 相对 pg9.1 的性能提升很大, 接下来再组织实际产品性能测试, 如果真的这样, 那接下来, 要做的事情可多了。
mattdeboard 对新版本中增加本地 JSON 支持非常高兴:
我对本地 JSON 支持的特性感到非常激动,我是 PostgreSQL 的粉丝,而这是有史以来最激动人心的版本。
einhverfr 最感兴趣的特性并不限于性能和对 JSON 的支持:
第一个特性是安全性屏障(Security Barrier)和泄漏验证(Leakproof),让我们可以重新思考如何创建多租户应用程序;第二个特性是无继承(No Inherit)约束,我会充分利用它。当应用在表继承性和分区的时候,我主要会使用它来确保事实上表不会拥有自己的行。
评论