关于 
什么是 PostgreSQL?
PostgreSQL 是一个功能强大、开源的对象关系数据库系统,它使用并扩展了 SQL 语言,并结合了许多功能,可以安全地存储和扩展最复杂的数据负载。PostgreSQL 的起源可以追溯到 1986 年,当时是加州大学伯克利分校 POSTGRES 项目的一部分,该核心平台已有近 40 年的活跃开发历史。
PostgreSQL 以其成熟的架构、可靠性、数据完整性、强大的功能集、可扩展性以及软件背后开源社区致力于持续提供高性能和创新解决方案的热情而赢得了良好的声誉。PostgreSQL 运行在 所有主流操作系统 上,自 2001 年以来一直符合 ACID 标准,并且拥有强大的附加组件,例如流行的 PostGIS 地理空间数据库扩展。因此,PostgreSQL 成为许多个人和组织的开源关系数据库首选也就不足为奇了。
开始使用 PostgreSQL 从未如此简单 - 选择一个你想构建的项目,让 PostgreSQL 安全稳健地存储你的数据。
为什么要使用 PostgreSQL?
PostgreSQL 附带 许多功能,旨在帮助开发人员构建应用程序、管理员保护数据完整性并构建容错环境,并帮助您管理数据,无论数据集是大是小。除了 免费和开源 之外,PostgreSQL 还具有高度的可扩展性。例如,您可以定义自己的数据类型,构建自定义函数,甚至可以在不重新编译数据库的情况下使用 不同的编程语言 编写代码!
PostgreSQL 努力符合 SQL 标准,只要这种符合性不与传统功能冲突,或可能导致糟糕的架构决策。SQL 标准所要求的许多功能都得到了支持,尽管有时语法或函数略有不同。预计随着时间的推移,将进一步朝着符合标准的方向发展。截至 2025 年 9 月发布的 18 版,PostgreSQL 符合 SQL:2023 核心标准中 177 项强制性功能中的至少 170 项。截至撰写本文时,没有关系数据库完全符合此标准。
以下是 PostgreSQL 中各种功能的不完全列表,每个 主要版本 都会增加更多功能
-
数据类型
- 基本类型:整数、数值、字符串、布尔值
- 结构化:日期/时间、数组、范围/多范围、UUID
- 文档:JSON/JSONB、XML、键值(Hstore)
- 几何:点、线、圆、多边形
- 自定义:复合类型、自定义类型
-
数据完整性
- UNIQUE、NOT NULL
- 主键
- 外键
- 排他约束
- 显式锁、咨询锁
-
并发、性能
- 索引:B-tree、多列、表达式、部分索引
- 高级索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆盖索引、Bloom 过滤器
- 复杂的查询规划器/优化器、仅索引扫描、多列统计信息
- 事务、嵌套事务(通过保存点)
- 多版本并发控制(MVCC)
- 读取查询和 B-tree 索引构建的并行化
- 表分区
- SQL 标准中定义的所有事务隔离级别,包括可串行化
- 表达式的即时(JIT)编译
- 异步 I/O (AIO)
-
可靠性、灾难恢复
- 写前日志(WAL)
- 复制:异步、同步、逻辑
- 时间点恢复(PITR)、活动备用
- 表空间
-
安全
- 身份验证:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、证书、OAuth 2.0 等
- 强大的访问控制系统
- 列和行级安全性
- 多因素身份验证(通过证书和附加方法)
-
可扩展性
- 存储函数和过程
- 过程语言:PL/pgSQL、Perl、Python 和 Tcl。通过扩展还有其他语言可用,例如 Java、JavaScript (V8)、R、Lua 和 Rust
- SQL/JSON 构造函数、查询函数、路径表达式和 JSON_TABLE
- 外部数据包装器:使用标准的 SQL 接口连接到其他数据库或流
- 可自定义的表存储接口
- 许多提供附加功能的扩展,包括 PostGIS
-
国际化、文本搜索
- 支持国际字符集,例如通过 ICU 排序规则
- 不区分大小写和不区分重音的排序规则
- 全文搜索
您可以在 PostgreSQL 文档 中发现更多功能。此外,PostgreSQL 具有高度的可扩展性:许多功能(如索引)都定义了 API,以便您可以扩展 PostgreSQL 来解决您的挑战。
PostgreSQL 已被证明在它能够管理的数据量以及它能够容纳的并发用户数量方面都具有高度的可扩展性。生产环境中存在活跃的 PostgreSQL 集群,它们管理着数 TB 的数据,还有专门的系统管理着 PB 级数据。
有疑问吗?
关于 PostgreSQL 的任何疑问,首先要查阅其 世界闻名的文档,其中深入介绍了如何使用 PostgreSQL。
我们还有许多 邮件列表,您可以在其中联系并参与 社区。还有许多 活动 和 本地用户组,您可以在其中与其他 PostgreSQL 用户建立联系。
我们的用户 我们
我们选择 Postgres 作为 Morph Labs 的主要数据库,因为它为我们在网格环境中运行数据库提供了最佳解决方案。
Guy Naor,CTO,Morph Labs
在之前的解决方案中,我们发现难以支持超过 50GB 的数据库。现在,由于 PostgreSQL,我们轻松地处理着 400GB+ 数据和数亿条记录的数据库……这使我们在市场上脱颖而出,并在我们不断增长的收入中发挥了主要作用。
Joshua Marsh,Listfusion
Centroy 从一开始就在使用 PostgreSQL。我们希望拥有能够承受高强度峰值工作负载的可扩展性,以及内置功能,例如集群,以在多个地理位置引入更高级别的保护。
Andrew Homer,创始人,Centroy
PostgreSQL 9.3 提供了作为应用程序开发人员可以立即使用的功能:更好的 JSON 功能、正则表达式索引、使用 Postgres 外部数据包装器轻松联合数据库……
Jonathan S. Katz,VenueBook
没有统计数据的数据库项目算什么?
35+ 年开发
725+ 贡献者
61,000+ 次提交
70+ 本地用户组
1,780,000+ 行 C 代码
720+ 场活动
数百万满意用户
∞ 存储数据