PostgreSQL 简介
基本概念
PostgreSQL(常简称 Postgres)是一个开源的 对象-关系型数据库管理系统(ORDBMS)。它最早起源于美国加州大学伯克利分校的 POSTGRES 项目,后续发展成为全球广泛使用的数据库系统。
它不仅支持传统的关系型数据库功能,还支持面向对象的扩展和丰富的数据类型。
特点与优势
开源免费
- 遵循 PostgreSQL 许可证(与 BSD 类似的宽松协议),允许自由使用和二次开发。
标准 SQL 支持
- 遵循 SQL 标准,同时提供大量扩展语法。
事务与可靠性
- 支持 ACID(原子性、一致性、隔离性、持久性)事务,保证数据安全。
- 使用 MVCC(多版本并发控制),读写并发性能优秀。
丰富的数据类型
- 内置:数值、字符串、日期、布尔、JSON/JSONB、数组、UUID 等。
- 可扩展:支持自定义数据类型。
高级特性
- 视图、触发器、存储过程、窗口函数。
- 全文检索、地理空间数据(PostGIS)。
- 分区表、并行查询、逻辑复制。
可扩展性强
- 用户可以编写插件,扩展索引方法、操作符、存储过程语言(支持 PL/pgSQL、PL/Python、PL/Perl 等)。
跨平台
- 可运行在 Linux、Windows、macOS 等主流操作系统。
应用场景
Web 应用后台数据库 许多互联网公司使用 PostgreSQL 作为核心业务数据库,存储用户、订单、日志等数据。
大数据分析 复杂查询和聚合分析,适合 BI 和数据仓库场景。
JSON/半结构化数据存储 作为关系型与 NoSQL 的结合,支持高效 JSONB 存储与查询。
地理信息系统(GIS) 配合 PostGIS 插件,处理地图、定位、地理计算等。
替代商业数据库 功能接近甚至超过 Oracle、SQL Server,且零授权费用。
与其他数据库对比
特性 | PostgreSQL | MySQL | MongoDB |
---|---|---|---|
类型 | 关系型(支持对象扩展) | 关系型 | 文档型(NoSQL) |
事务支持 | 完整 ACID | 部分引擎支持(如 InnoDB) | 弱事务 |
JSON 支持 | JSON/JSONB,功能强大 | JSON 支持有限 | 原生 JSON |
扩展能力 | 极强(插件、索引、数据类型) | 一般 | 一般 |
性能 | 读写平衡,复杂查询强 | 读多写少场景优 | 写多读少场景优 |