BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

PostgreSQL获得更好的NoSQL性能

| 作者 Roopesh Shenoy 关注 0 他的粉丝 ,译者 马德奎 关注 0 他的粉丝 发布于 2014年6月1日. 估计阅读时间: 4 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

PostgreSQL 9.4测试版带来了备受期待的“二进制JSON”类型JSONB。这种面向文档数据的新的存储格式性能更优,而且带来了索引和用于操作JSON数据的函数和操作符。

JSONB类型融合了HStore和JSON两个项目。JSONB拥有JSON的一切,但它由于采用二进制表示而存储更高效,由于索引而速度更快。当前所有的HStore和JSON用户预计最终都将转到JSONB。

既然PostgreSQL的传统客户群一直是需要可靠的关系功能的开发人员,或者是从像Oracle这样的企业数据库切换过来的用户,那么为什么NoSQL功能对它而言如此重要?Josh Berkus是团队的核心成员之一,他分享了一些看法

虽然Oracle的市场目前很大,但根本就不增长。Oracle用户中会转向PostgreSQL的人实际数目比那个更少。不管我们增加多少功能,我们永远都无法成为Oracle,也无法比Oracle做的更好。

创新技术之所以会成功是因为他们获得了新用户并扩大了市场。

另外,同一话题中的其它评论明确指出,若干将PostgreSQL与Node、Python、Go或者Ruby技术一起使用的创业公司是如何期待着使用快速JSON支持。

考虑到这些问题,很明显,对JSON提供一流的性能支持,而又无损于其传统强项,如可靠性,可以帮助PostgreSQL增加新的应用场景。

也有一些领域,使用其它的NoSQL数据库可能更合适——比如,EnterpriseDB的核心团队成员和高级数据库架构师Bruce Momijan就建议(通过邮件)——

即使PostgreSQL扩展了功能和性能,也仍然有一些边缘情况,NoSQL解决方案可能更适合。对于有大量重复的非结构化数据,如日志文件,列存储的Cassandra就很好,它添加新节点更方便。不过,Postgres将准备好用于既能从NoSQL功能受益又需要符合ACID的应用程序。

EnterpriseDB的主要贡献者和高级数据库架构师Robert Haas补充道——

一个例子就是,如果你正将MapReduce用于高度并发的查询处理,那么,在那种情况下,用像Hadoop那样的东西可能更好。另一个例子就是,如果你的数据模型需要对JSON大对象做大量小的更改,那么也许有若干NoSQL解决方案都能更高效地处理这种情况。

不过,除了特定的应用场景外,对于那些需要在同一个应用程序中针对不同的数据类型灵活地选用无模式存储或关系型存储以及需要保证ACID的开发人员而言,Postgres就开始能够做出令人信服的案例了。

请注意,JSONB并不是9.4中引入的唯一的主要功能,还有其它几项:

  • 数据更改流API(Data Change Streaming API)”允许对复制流进行解码和转换。这为支持高速和更灵活复制的新复制工具和扩展解决方案奠定了基础。
  • 带有“refresh concurrently”选项的物化视图
  • ALTER SYSTEM SET允许从SQL命令行和远程客户端修改postgresql.conf,使管理更简单。

另外,它还包含若干小的功能——

读者可以从发布说明中查看完整的更新列表。

查看英文原文:PostgreSQL Gets Better NoSQL Capabilities

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT