为什么PostgreSQL是"最先进的开源数据库"

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:

背景

打开PostgreSQL网站,你会看到这样的flag。

The world's most advanced open source database.

pic

那么它从何而来呢?

从个人对数据库的角度,在几个方面来分析一下

一、功能方面

1 数据处理能力 - 高级SQL特性

1、窗口查询

2、聚合查询,支持WITHIN GROUP、grouping sets, rollup, cube等

3、CTE, 递归查询

4、merge,upsert (on conflict)语法

5、继承

6、重写规则

7、物化视图

8、异步消息

9、advisory 锁

2 数据处理能力 - 丰富类型

除了常见类型还包括扩展类型

1、数值(整型、任意长度精度数值、浮点、序列)

2、时间、日期、时间戳

3、字符串

4、货币

5、字节流

6、布尔

7、枚举

8、几何

9、网络

10、比特流

11、全文检索

12、UUID

13、XML

14、JSON

15、数组

16、复合

17、范围

18、大对象

19、K-V类型

20、多维类型

21、树类型

22、加密类型

23、模糊查询加速类型

24、扩展类型,见扩展章节

3 数据处理能力 - 丰富函数

1、科学计算相关函数、随机函数、三角函数

2、数据集生成函数 SRF

3、几何(距离、面积、交错、支点、位置等)

4、字符串格式化、处理、编码转换、等操作函数

5、字节流处理函数

6、比特流处理函数

7、正则表达式处理函数

8、全文检索处理函数

9、JSON类型处理函数

10、枚举、网络、XML类型处理函数

https://www.postgresql.org/docs/10/static/functions-net.html

https://www.postgresql.org/docs/10/static/functions-xml.html

11、序列

12、数组处理函数(是否相交、包含、不包含、差集、交集、等)

13、范围类型处理函数(是否相交、包含、不包含、差集、交集、等)

14、条件表达式

15、子查询

16、行、数组构造器

17、聚合函数

18、窗口函数

19、触发器

20、事件触发器

4 数据快速检索能力 - 先进索引

1、函数、表达式索引

2、多列索引

3、多索引合并(bitmapAnd, bitmapOr)

4、部分索引

5、B-Tree 索引

6、hash 索引

7、GIN 倒排索引

8、GiST 通用索引

9、SP-GiST 空间分区通用索引

10、BRIN 块级索引

11、RUM 增强全文索引

12、BLOOM 布隆过滤索引

13、zombodb elasticSearch索引接口

14、b-tree, gist 合体索引

15、b-tree, gin 合体索引

16、《PostgreSQL 10.0 preview 功能增强 - 唯一约束+附加字段组合功能索引》

17、《PostgreSQL 10.0 preview 优化器改进 - 不完整索引支持复合排序》

18、《PostgreSQL 10.0 preview 性能增强 - 间接索引(secondary index)》

5 数据处理能力 - 高级编程特性

1、python存储过程

2、pgsql存储过程

3、sql存储过程

4、tcl存储过程

5、perl存储过程

6、javascript存储过程

7、CUDA存储过程](https://github.com/pg-strom/devel)

8、R存储过程

9、C嵌入式编程

10、分布式存储过程pl/proxy

11、还支持众多语言:ruby, sh, java, php, xslt等等

6 复制能力

1、逻辑流式订阅

2、物理流式复制

3、时间线逆转

7 高级内部特性

1、动态视图、统计信息、状态信息、等待事件

2、TOP SQL

3、

《PostgreSQL 锁等待监控 珍藏级SQL - 谁堵塞了谁》

4、进程进度报告

5、探针

6、扩展探针

7、buffer内窥

8、数据文件内窥

9、REDO内窥

10、钩子

11、流复制控制函数

12、事务快照接口

13、系统管理函数

14、开放协议(流复制协议、等)

15、大版本原地升级

16、plan hint

二、安全、可靠性方面

1、认证模式

秘钥认证

GSSAPI 认证

SSPI 认证

Ident 认证

Peer 认证

LDAP 认证

RADIUS 认证

Certificate 认证

PAM 认证

BSD 认证

2、行安全策略

3、视图栅栏

4、集群、库、表空间、schema、对象、角色 多级权限

5、时间点恢复

6、块级增量备份

https://github.com/postgrespro/pg_probackup

7、流式备份

8、异地容灾

9、quorum-based 任意多副本

10、FPW,full_page_write

三、性能方面

1 多核并行计算

https://www.postgresql.org/docs/10/static/parallel-query.html

2 多机并行计算

fdw + inherit + append parallel

https://www.postgresql.org/docs/10/static/postgres-fdw.html

https://www.postgresql.org/docs/10/static/tutorial-inheritance.html

3 黑科技

1、llvm

《PostgreSQL 10.0 preview 性能增强 - 推出JIT开发框架(朝着HTAP迈进)》

2、向量计算

《PostgreSQL 向量化执行插件(瓦片式实现) 10x提速OLAP》

3、列存储

《分析加速引擎黑科技 - LLVM、列存、多核并行、算子复用 大联姻 - 一起来开启PostgreSQL的百宝箱》

4 优化器

1、成本因子接口

2、统计信息

3、自定义统计信息

4、遗传算法

5、nestloop, hash, merge JOIN

6、支持 plain, sorted, hashed, mixed 聚合策略

src/backend/commands/explain.c

7、39种NODE类型

src/backend/commands/explain.c

Agg:  
Append:  
BitmapAnd:  
BitmapHeapScan:  
BitmapIndexScan:  
BitmapOr:  
CteScan:  
CustomScan:  
ForeignScan:  
FunctionScan:  
Gather:  
GatherMerge:  
Group:  
Hash:  
HashJoin:  
IndexOnlyScan:  
IndexScan:  
Limit:  
LockRows:  
Material:  
MergeAppend:  
MergeJoin:  
ModifyTable:  
NamedTuplestoreScan:  
NestLoop:  
ProjectSet:  
RecursiveUnion:  
Result:  
SampleScan:  
SeqScan:  
SetOp:  
Sort:  
SubqueryScan:  
TableFuncScan:  
TidScan:  
Unique:  
ValuesScan:  
WindowAgg:  
WorkTableScan:  

8、支持并行sort(merge sort)

四、SQL兼容性方面

1、SQL:2011

160/179项 SQL:2011 的实现,覆盖率达到 89.4%,另外还有大量扩展。

五、扩展接口方面

1、扩展函数

2、扩展聚合

3、扩展类型

4、扩展操作符

5、扩展索引

6、扩展全文检索词典

7、扩展编程语言

https://wiki.postgresql.org/wiki/PL_Matrix

8、扩展外部数据源

https://wiki.postgresql.org/wiki/Fdw

9、扩展数据采样接口

10、扩展custom scan接口

https://github.com/pg-strom/devel

11、扩展WAL接口

12、扩展GiST索引

13、扩展SP-GiST索引

14、扩展GIN索引

15、扩展BRIN索引

六、横向生态 - 插件

PostgreSQL 的扩展接口丰富,使得在开源、商业生态中有非常多PostgreSQL的扩展插件。

1、内置插件

2、pgxn

3、pgfoundry

4、github

5、独立插件生态:

商业数据库、数据库支持服务公司、用户、个人、高校、应用软件开发商、其他开源社区。

例如 PostGIS, pgrouting, pipelinedb流计算插件, timescaledb时序插件, rdkit化学插件, madlib机器学习插件, plr R语言插件, postbis DNA插件, imgsmlr图像特征插件, pgfingerprint指纹特征插件 等.

七、生态方面

1、内核生态

commitfest

内核

核心组会议

mail list

活跃度

postgresql wiki

postgresql in wiki

2、高校生态

PostgreSQL起源伯克利大学,与高校有非常深的渊源,也被业界贴上了学院派数据库的标签。同时PG社区趋于遵从行业标准设计,代码严谨、工整,许多高校将PG用于数据库教学。

3、开发者生态

4、最终用户生态, user groups

http://cn.bing.com/search?q=postgresql+user+group&qs=n&form=QBLH&sp=-1&pq=postgresql+user+group&sc=0-21&sk=&cvid=A865739EF479477EB27A3A8DB9895CC1

5、技术支持服务生态

全球有很多技术支持服务商业公司,其中不乏PostgreSQL社区的核心贡献者。

5.1、EDB

5.2、2ND

5.3、postgrespro(oleg)

5.4、PGEXPERT

5.5、河马(tom lane)

5.6、cybertec

5.7、阿里云

5.8、stackoverflow

6、全球主要贡献者

八、业务场景

1、功能强大,支持非常多业务场景

《PostgreSQL 179 种场景 - 案例实践》

2、HTAP发展方向

《数据库任督二脉 - 数据与计算的生态融合》

九、其他

功能强大,同时简单易用

《PostgreSQL on Linux 最佳部署手册》

《PostgreSQL 前世今生》

《数据库选型思考》

《数据库选型之 - 大象十八摸 - 致 架构师、开发者》

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍如何基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1194 152
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
900 156
|
10月前
|
SQL 关系型数据库 MySQL
Go语言数据库编程:使用 `database/sql` 与 MySQL/PostgreSQL
Go语言通过`database/sql`标准库提供统一数据库操作接口,支持MySQL、PostgreSQL等多种数据库。本文介绍了驱动安装、连接数据库、基本增删改查操作、预处理语句、事务处理及错误管理等内容,涵盖实际开发中常用的技巧与注意事项,适合快速掌握Go语言数据库编程基础。
1199 213
|
7月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
7月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
8月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
744 0
|
10月前
|
存储 关系型数据库 分布式数据库
【赵渝强老师】基于PostgreSQL的分布式数据库:Citus
Citus 是基于 PostgreSQL 的开源分布式数据库,采用 shared nothing 架构,具备良好的扩展性。它以插件形式集成,部署简单,适用于处理大规模数据和高并发场景。本文介绍了 Citus 的基础概念、安装配置步骤及其在单机环境下的集群搭建方法。
878 2
|
10月前
|
存储 关系型数据库 测试技术
拯救海量数据:PostgreSQL分区表性能优化实战手册(附压测对比)
本文深入解析PostgreSQL分区表的核心原理与优化策略,涵盖性能痛点、实战案例及压测对比。首先阐述分区表作为继承表+路由规则的逻辑封装,分析分区裁剪失效、全局索引膨胀和VACUUM堆积三大性能杀手,并通过电商订单表崩溃事件说明旧分区维护的重要性。接着提出四维设计法优化分区策略,包括时间范围分区黄金法则与自动化维护体系。同时对比局部索引与全局索引性能,展示后者在特定场景下的优势。进一步探讨并行查询优化、冷热数据分层存储及故障复盘,解决分区锁竞争问题。
1346 2
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
615 0
|
存储 缓存 关系型数据库

相关产品

  • 云原生数据库 PolarDB
  • 云数据库 RDS PostgreSQL 版
  • 推荐镜像

    更多