写点什么

PostgreSQL 获得更好的 NoSQL 性能

  • 2014 年 5 月 30 日
  • 本文字数:1314 字

    阅读完需:约 4 分钟

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

2014 年 5 月 30 日 23:3011358
用户头像

发布了 256 篇内容, 共 72.3 次阅读, 收获喜欢 7 次。

关注

评论

发布
暂无评论
发现更多内容

如何加载100M的图片却不撑爆内存,-撑爆了怎么处理?100M-的大图,如何预防-OOM

android 程序员 移动开发

架构实战营作业 -- 模块六

冬瓜茶

如何才能更容易拿到大厂Offer?阿里大佬十年面试了-2000-人,总结了这7-条---

android 程序员 移动开发

字节跳动+京东+360,帮助程序员提高核心竞争力的30条建议

程序员 移动开发

好难过!八年深漂,搞Android开发要价50万(1),腾讯、网易必问的20道题Android面试题

android 程序员 移动开发

如何写出一份“有理有据使人信服”的Android项目设计文档

android 程序员 移动开发

架构实战营作业 -- 模块五

冬瓜茶

王者荣耀商城异地多活架构设计

Imaginary

如何教女友学编程?你先去洗澡,我构思一下,androidapp开发语言

android 程序员 移动开发

大学毕业做音视频开发,月入20K,你呢,带你全面掌握高级知识点

android 程序员 移动开发

如何写一篇杀手级的软件工程师简历,通过五轮面试斩获offer阿里实习生亲述

android 程序员 移动开发

大牛教你详解 Activity 的生命周期,kotlin反编译工具

android 程序员 移动开发

如何正确的在 Android 上使用协程 ?,kotlin数组全排列

android 程序员 移动开发

如何学好设计,做好架构? 设计原则才是关键,精通android游戏开发

android 程序员 移动开发

如何将项目提交到GitHub,mmkv如何保证进程安全

android 程序员 移动开发

妙用AccessibilityService黑科技实现微信自动加好友拉人进群聊

android 程序员 移动开发

字节跳动大神讲座:我们除了技术一无所有,2020Android程序员职业规划

android 程序员 移动开发

大意了,又是 OOM ,Android 内存监控一定要注意这几点

android 程序员 移动开发

太难为我这个应届生了,腾讯面试了8轮,终拿下腾讯Android测发岗offer

android 程序员 移动开发

字节跳动1面Too simple2面怀疑人生,宅家修炼“65天,flutter下拉列表

android 程序员 移动开发

好难过!八年深漂,搞Android开发要价50万,android面试基础题

android 程序员 移动开发

如果你使用Jetpack中还没踩过这些坑,请务必收下这篇文章

android 程序员 移动开发

如何自学Android gityuan ?,2021年互联网大厂Android面经总结

android 程序员 移动开发

大学做客户端竟连外包面试都面不过?客户端真的会两年内消失么?

android 程序员 移动开发

架构实战营作业 -- 模块七

冬瓜茶

如何加载100M的图片却不撑爆内存,一张 100M 的大图,如何预防 OOM?

android 程序员 移动开发

如果你是小白,想学Android;如果你是Android开发者,安卓开发快速上手

android 程序员 移动开发

字节+谷歌超全Kotlin学习王炸笔记!Kotlin入门到精通,我的头条面试经历分享

android 程序员 移动开发

字节Android岗面试:Handler中有Loop死循环,为什么没有阻塞主线程

android 程序员 移动开发

奔三女程序员不禁三思,“中年危机,kotlin常量

android 程序员 移动开发

女程序员的逆袭之路, 三面通过 15K,HR 说你只值 10K,写给正在求职的安卓开发

android 程序员 移动开发

PostgreSQL获得更好的NoSQL性能_语言 & 开发_Roopesh Shenoy_InfoQ精选文章