写点什么

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

  • 2014-12-25
  • 本文字数:1880 字

    阅读完需:约 6 分钟

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 的企业级产品与服务的提供商 EnterpriseDB PostgreSQL 和 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 )关注我们,并与我们的编辑和其他读者朋友交流。

2014-12-25 04:244135
用户头像

发布了 92 篇内容, 共 49.3 次阅读, 收获喜欢 5 次。

关注

评论

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

确保数据中心物理安全的五种方法

Ethereal

聊聊 Pulsar:编译 Pulsar 源码并搭建源码环境

老周聊架构

云原生 Apache Pulsar 3月月更

基于 EventBridge 构建 SaaS 应用集成方案

阿里巴巴云原生

云原生 SaaS

一种小程序弱网离线优化的思路

阿里巴巴终端技术

小程序 弱网 体验优化

阿里IM技术分享(七):闲鱼IM的在线、离线聊天数据同步机制优化实践

JackJiang

即时通讯 IM im开发

flask POST请求,数据入库,文件上传,一文看懂,3天掌握Flask开发项目系列博客之三

梦想橡皮擦

3月月更

拥抱国产云桌面,焱融科技与酷栈科技完成产品兼容认证

焱融科技

云计算 分布式 云原生 高性能 文件存储

云原生网络利器--Cilium 之 eBPF 篇

Daocloud 道客

云原生 ebpf cilium

天翼云供应链API安全治理实践获“优秀治理实践奖”

天翼云开发者社区

东数西算加快云网与数据融合天翼云架起云间高速

天翼云开发者社区

阿里云神龙AI加速引擎帮助vivo将训练性能提升30%-70%

阿里云弹性计算

AI gpu 神龙架构 加速引擎

CVE-2022-22947 远程代码执行漏洞复现分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

使用基于 WebRTC 的 JavaScript API 在浏览器环境里调用本机摄像头

汪子熙

JavaScript 前端 WebRTC 摄像头 3月月更

千字带你了解什么是 RPC 协议

踏雪痕

RPC 3月程序媛福利 3月月更

《人民日报》刊文:天翼云持续创新为数据安全保驾护航

天翼云开发者社区

如何在 Python 中反转字符串?

Ethereal

智能家居市场白热化,小程序助力生态合作新模式

Speedoooo

小程序生态 智慧小区 小程序容器 智慧家居 智慧物业

欧拉的奇异之旅·共赴开源时代

白洞计划

天翼云联手平凯星辰共建开源分布式数据库实验室

天翼云开发者社区

向工程腐化开炮|资源治理

阿里巴巴终端技术

Java android 资源管理

无影云电脑支持企业快速实现居家办公

阿里云弹性计算

远程办公 数据安全 无影云电脑

如何设计良好的技术项目文档结构

老张

项目管理 交付质量

持续集成容器篇:Docker与自动化打包

Docker 架构 持续集成 jenkins 持续交付

Docker Shim 被移除,K8s v1.24 升级该怎么办

Daocloud 道客

Docker Kubernetes CRI-Dockerd

每秒百万条信息查询天翼云助力江苏核酸检测信息查询

天翼云开发者社区

作业五

Geek_f3e842

架构实战营

WMS系统与ERP仓储管理的差异

源字节1号

开源 后端 前端开发 WMS系统 ERP系统

龙蜥开发者说来了,来看看社区一周动态还有什么? | 3.07-3.11

OpenAnolis小助手

开源 开发者 龙蜥社区 一周动态

3天掌握Flask开发项目系列博客之二,操作数据库

梦想橡皮擦

3月月更

终端常用快捷键

刁架构

终端 快捷键 iterm2

Python 递归函数返回值为 None 的解决办法

AlwaysBeta

Python 递归

PostgreSQL 9.4版本增强了灵活性、扩展性、性能_后端_李士窑_InfoQ精选文章