【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
五年以前,我写了一个《魏何你应应用 PostgreSQL》的岾子,引起了广泛的存眷。一年今后,我增长了一些我漏写的内容,这些内容我会在这篇文┞仿的后半部分重述一下要点。然则在比来的 4-5 年,PostgreSQL 有了很多的改进和进步,也就有了更多的来由我们为何要应用它。如今这里是一个新的总结,魏何你应应用 PostgreSQL 这一特别棒的数据库。
数据类型,包含 JSONB 和范围(Range)类型
Postgres 一向以来对新增数据类型都是开放和友爱的体系。 它稀有组、空间地舆以及很多时光相干的数据类型。几年前它又增长了两种值得我们存眷和应用的新类型:
- JSONB 类型
JSONB 是一个二进制的 JSON 数据类型。它可以应用 GIN 和 GIST 格局进行索引。你也可以快速萌芽完全的 JSON 文档。
- Range 范围类型
这个数据类型如今还没有 JSONB 有名,范围类型当它是你须要的类型时,它才会特别地有效。 对时光范围来说,应用一列字段来表达年腋荷琐值到另一个值典范围特别便利。如不雅你创建一个日历应用,或者老是有一个大年夜哪个时光到另一个时光的参数,那范围类许可以让你只需应用一个字段值即可。更大年夜的好处还有你可以指定必定的时光范围不克不及互相覆盖、交叉,或是其他对你的应用有效的束缚。
谈到 Postgres 就很难不提到环绕它存在的生态体系。扩大模块的应用对社区来说很关键,同时也促使 Postgres 快速成长。扩大应用户可以让用户应用原生的系统连接 Postgres 核心,而不必是将需求提交给 Postgres 的核心开辟。这也意谓着用户可以增长丰富的功能而不必与 Postgres 内核的宣布和审核轮回连在一路。一些特别有名的重磅扩大有:
- Citus 扩大
Citus (这也是我工作的内容) 扩大让 Postgres 成为了一个分布式数据库,它许可用户很轻易地将数据库进行跨节点的分发。 而对你的应用来说,它仍然像是一个单节点的数据库,而在后台,Citus 会将数据传给多个不呵9依υ?理设备和多个 Postgres 的实例。
- HyperLogLog 扩大
这是一个我小我最为爱好的扩大,它许可用户对大年夜量数据的集合的独一计数有一个很轻易获得且异常接接近理论值的结不雅,当然也可以对跨时光结合、订交等各类操作进行 处理。HyperLogLog 和其他的概要逻辑对处理大年夜数据集和分布式数据库很常用,并且是可以很便利地嵌入 Postgres 内部应用。
- PostGIS 扩大
PostGIS 不是一个新的扩大,但它是一个值得重提亮点。它平日都是被认为是最先辈的地舆数据库。PostGIS 增长了新的高等的地舆空间数据类型、操作符,使得很多与地位有关的地图类或是路由类的操作变得很轻易。
多年以来,大年夜扼请求最多的就是解决 Postgres 中设置数据复制的易用性。最早时我们也有根本的复制筹划,然后我们有了流复制技巧(即二进制的 WAL 或称之为预写日记)。 对类似 wal-e 如许的对象,赞助晋升了 Postgres 在灾害恢复方面的才能。
如今比来的版本里,我们有了逻辑复制,固然如今照样须要一个扩大,不是 100% 内核功能,但最终我们照样有了一个完全的逻辑复制筹划。逻辑复制许可用户发送不合数量的指令,这也意谓着我们可以复制指定的内容或表。
体系扩大性
除了我们见到的 Postgres 在持续对功能和机能的改进,比来也是特别地增长了并行萌芽功能以获取更好的机能。如不雅用户须要超出单个 Postgres 节点的扩大,我们可以应用前面提到的 Citus 进行横向扩大。
Extensions 扩大功能
逻辑复制
丰富的索引
Postgres 如今有很多种强大年夜的索引,像 GIN 和 GiST 索引,它们对 JSONB 数据特别有效。我们如今也有了 KNN 和 Sp-GiST 索引格局,并且还在增长中。
Upsert 功能
Upsert 在 Progress 已开辟和演变有好几年了。当然,一些用户可以经由过程变通应用 CTE 功能来实现类似功能,但可能会产生一些前提冲突。这个特点曾是 MySQL 有但 Postgres 没有的功能,如今 1 年多前,Postgres 也有了正式的支撑。
外部数据源封装
当然,还有几年前就有的外部数据源封装功能。它许可你映射外部数据体系至 Postgres 中的表。这就意谓着,比如,我们可以在 Postgres 中萌芽 Redis 的数据库。这项功能 5 年前就一向在赓续地改进和进步,尤其是如今我们已支撑可写的外部数据源处理,即我们在 Postgres 直接写入数据至外部数据库。如今官方的 Postgres 宣布版本中至少带有 Postgres 的 FDW,它对跨 Postgres 实例读写数剧匀其有效。
更多其他的功能
如不雅你对以前的 PG 版本不是太熟,在以前的版本一一些应懂得的功能还包含:
- 窗口函数
- 一般函数
- 可定制的说话
- NoSQL 数据类型
- 定制函数
- CTE 表达式
- 并行索引创建
- 事务 DDL
- 外部数据封装
- 前提或函数式索引
- 事宜侦听 / 提示
- 表持续
- 事务级的同步复制
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 而随之而来的,就是主板硬盘接口的变革,传统的SATA接口限制了SSD的发挥,为此人们成长出了各类更高效的传输>>>详细阅读
本文标题:2018,为何你应该使用PostgreSQL,这几个也许就是理由了
地址:http://www.17bianji.com/lsqh/40268.html
1/2 1