在MySQL被Oracle收入旗下之后,出自伯克利名门的另一主要开源数据库PostgreSQL获得越来越多的关注和应用。9月9日,PostgreSQL全球开发组宣布了9.3版发布的消息。从2010年9.0版开始,PostgreSQL已经连续四个版本稳定地按时在每年9月中旬发布,从一个侧面也显示了开发团队的强大实力。
9.3版的新增点通过官方的特性矩阵能够最直观地看到。官方Wiki中的What‘s New和正式文档中的版本说明有更详细的说明。
比较显著的新增特性包括:
外部数据集成
- 外部数据封装器现在可写了,大大有助于系统间的双向数据交换。这在目前多种数据库和存储技术共存的复杂IT系统中非常重要。
- 新增了一个高性能、读/写PostgreSQL-PostgreSQL联邦驱动器postgres_fdw。
可靠性和可用性增强
- 数据页校验和。有助于管理员快速地检测故障硬盘和损坏数据的硬件
- 快速故障恢复。次秒级主副切换,支持运营商级可用性
- Streaming-Only Remastering:故障后梯级副本的快速、简便重新配置
面向开发者的特性
- 更多的JSON构造方法和提取方法
- 能自动更新的视图
- Parallel pg_dump,可加速大规模数据库的备份
- LATERAL JOIN(子句FROM部分中的子查询可以引用FROM列表中之前项里的列,详见文档)
最新版本下载地址:http://www.postgresql.org/download/
HN的讨论中,masklinn特别提到对于应用开发者,PGResult是一个非常有用的功能。可以从中获得非常直观的应用诊断信息。
哪些特性最受欢迎呢?
瑞士电商技术公司Sensational的CTO Philip Hofstetter(@pilif)对NO KEY UPDATE锁模式情有独钟,说这能够大大提升应用在导入程序运行时的性能。NO KEY UPDATE和KEY SHARE是在原有的两种锁模式之外新增的两个模式,具体可以参见这篇文章。这是智利的PG核心开发者Álvaro Herrera(Twitter @alvherre)过去五年的工作成果。
在Heroku效力的Craig Kerstiens(他也是PostgreSQL Weekly和PostgresGuide.com/的负责人)则专门为此发表了一篇文章,同时Heroku也在生产环境开始提供PostgreSQL 9.3版的服务。
瑞典的Joel Jacobson最喜欢的是:防止非键字段的行更新阻塞外键检查。这能够提高并发性,减少有外键约束时表更新中的死锁概率。
jeltz表示自己最心仪的是两点:1) 不用再配置sysv 共享内存 2) LATERAL JOIN,用返回集合的函数做join操作更容易了(他认为官方声明中提到的子查询场景实际用处不大)。
zwily(他应该教育平台公司Instructure的研发副总Zach Wily)指出,9.3为未来的双向复制打下了基础,原生的多主数据库间复制成为可能。