Skip to content

PostgreSQL 简介

基本概念

PostgreSQL(常简称 Postgres)是一个开源的 对象-关系型数据库管理系统(ORDBMS)。它最早起源于美国加州大学伯克利分校的 POSTGRES 项目,后续发展成为全球广泛使用的数据库系统。

它不仅支持传统的关系型数据库功能,还支持面向对象的扩展和丰富的数据类型。

特点与优势

  1. 开源免费

    • 遵循 PostgreSQL 许可证(与 BSD 类似的宽松协议),允许自由使用和二次开发。
  2. 标准 SQL 支持

    • 遵循 SQL 标准,同时提供大量扩展语法。
  3. 事务与可靠性

    • 支持 ACID(原子性、一致性、隔离性、持久性)事务,保证数据安全。
    • 使用 MVCC(多版本并发控制),读写并发性能优秀。
  4. 丰富的数据类型

    • 内置:数值、字符串、日期、布尔、JSON/JSONB、数组、UUID 等。
    • 可扩展:支持自定义数据类型。
  5. 高级特性

    • 视图、触发器、存储过程、窗口函数。
    • 全文检索、地理空间数据(PostGIS)。
    • 分区表、并行查询、逻辑复制。
  6. 可扩展性强

    • 用户可以编写插件,扩展索引方法、操作符、存储过程语言(支持 PL/pgSQL、PL/Python、PL/Perl 等)。
  7. 跨平台

    • 可运行在 Linux、Windows、macOS 等主流操作系统。

应用场景

  • Web 应用后台数据库 许多互联网公司使用 PostgreSQL 作为核心业务数据库,存储用户、订单、日志等数据。

  • 大数据分析 复杂查询和聚合分析,适合 BI 和数据仓库场景。

  • JSON/半结构化数据存储 作为关系型与 NoSQL 的结合,支持高效 JSONB 存储与查询。

  • 地理信息系统(GIS) 配合 PostGIS 插件,处理地图、定位、地理计算等。

  • 替代商业数据库 功能接近甚至超过 Oracle、SQL Server,且零授权费用。

与其他数据库对比

特性PostgreSQLMySQLMongoDB
类型关系型(支持对象扩展)关系型文档型(NoSQL)
事务支持完整 ACID部分引擎支持(如 InnoDB)弱事务
JSON 支持JSON/JSONB,功能强大JSON 支持有限原生 JSON
扩展能力极强(插件、索引、数据类型)一般一般
性能读写平衡,复杂查询强读多写少场景优写多读少场景优