为什么postgresql是一个先进的开源数据库

1,336 阅读3分钟

前言

PostgreSQL是一个功能强大的开源关系型数据库管理系统,它具有可扩展性、稳定性和安全性等特点,同时还支持高级特性,如ACID事务、多版本并发控制(MVCC)、JSON和XML支持、多种索引类型、外部表和外部数据包装器、全文搜索和文本处理、GIS和空间数据、备份和恢复等。PostgreSQL的历史可以追溯到20世纪90年代初,它是从Postgres数据库管理系统中发展而来,现在已经成为许多组织和企业的首选数据库之一。在这个技术分享会上,我们将了解PostgreSQL为什么是世界上最先进的开源数据库 一个先进的开源数据库。

The world's most advanced open source database

image.png 上图来自google search

postgres的一些特性

数据类型

postgres的一些数据类型

全文搜索

使用postgres进行简单的全文搜索

扩展

postgres 支持扩展。通过扩展可以让pg有更多能力。这里介绍两个扩展,都能把pg变成专用的数据库,让pg在某些领域有更多能力。同时节省学习和维护成本,因为不用专门再学习、购买一套数据库了。

timescaledb

timescaledb是一个时序型数据库。官方网站 timescaledb远远不是一个章节能讲完的。大家有兴趣可以自行了解。console.cloud.timescale.com/ 提供托管的timescaledb,可以免费试用。 help.aliyun.com/document_de… 阿里云的这篇文章,展示了如何在RDS PostgreSQL实例上,安装timescaledb。

citus

官方网站 分布式postgres,开源,免费。Citus是一个非常适合于需要处理大量数据的应用程序的解决方案。Citus提供了跨节点的查询优化、事务管理、并发控制等功能,使得用户可以很方便地将其应用程序扩展到更大的数据规模。 2019年,微软收购了citus。

PostGIS

PostGIS是一个空间数据库。postgis.net/ PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。 PostGIS的应用场景包括但不限于地理空间数据采集、分析和管理、地理信息系统开发、地图制作等领域。

OLAP(online analytical processing,联机分析处理)

联机分析处理(OLAP)是一种软件技术,可用于从不同的角度分析业务数据。组织收集和存储来自多个数据源的数据, 例如网站、应用程序、智能电表和内部系统。

使用postgres进行简单的OLAP

备份和恢复

postgres的备份和恢复

索引

postgres的索引

ACID和MVCC

postgres的ACID和MVCC

其它

平台和工具支持

虽然,关系型数据库中最流行是MySQL,但是Postgres的生态也不差。我找了一些常见的平台和工具,都支持postgres。例如阿里云、腾讯云、Amazon,和sqlalchem(python orm), diesel(rust orm), prisma(nodejs orm), gorm(golang orm)。其中diesel的Getting Started里用的就是postgres。

pgamin

官方出品的postgres管理工具。支持通过docker部署。

image.png