第一章:PostgreSQL 简介

最后更新: 2024-01-01 作者: PostgreSQL Team
页面目录

第一章:PostgreSQL 简介

1.1 PostgreSQL 概述

PostgreSQL 是一个功能强大的开源对象关系型数据库系统,起源于加州大学伯克利分校的 POSTGRES 项目。经过 30 多年的积极开发,PostgreSQL 已成为世界上最先进的开源数据库之一。

┌─────────────────────────────────────────────────────────────┐
│                      PostgreSQL                             │
├─────────────────────────────────────────────────────────────┤
│  开源免费 │ ACID 特性 │ MVCC │ JSON 支持 │ GIS 扩展         │
│  全文检索 │ 触发器    │ 存储过程 │ 用户自定义类型          │
└─────────────────────────────────────────────────────────────┘

1.2 PostgreSQL 历史沿革

年份 版本 重要里程碑
1986 POSTGRES 加州大学伯克利分校开始开发
1996 PostgreSQL 6.0 正式命名为 PostgreSQL
2005 PostgreSQL 8.0 Windows 平台原生支持
2010 PostgreSQL 9.0 流复制支持
2018 PostgreSQL 11 内置分区表改进
2023 PostgreSQL 16 并行查询优化

1.3 PostgreSQL 核心特点

1.3.1 完整的 ACID 特性

PostgreSQL 完全支持 ACID 事务,确保数据的原子性、一致性、隔离性和持久性。

-- 事务示例
BEGIN;

UPDATE accounts SET balance = balance - 1000 WHERE user_id = 1;
UPDATE accounts SET balance = balance + 1000 WHERE user_id = 2;

COMMIT;  -- 或 ROLLBACK; 回滚事务

1.3.2 多版本并发控制 (MVCC)

MVCC 机制允许读写操作互不阻塞,提高并发性能:

-- 查看当前事务ID
SELECT txid_current();

-- 查看当前会话的事务隔离级别
SHOW transaction_isolation;

1.3.3 丰富的数据类型

PostgreSQL 支持多种数据类型:

类型类别 数据类型
数值类型 INTEGER, BIGINT, NUMERIC, REAL, DOUBLE PRECISION
字符串 VARCHAR, TEXT, CHAR
日期时间 DATE, TIME, TIMESTAMP, INTERVAL
布尔 BOOLEAN
JSON/JSONB JSON, JSONB
数组 INTEGER[], TEXT[]
网络 INET, CIDR, MACADDR
几何 POINT, LINE, POLYGON

1.3.4 高级特性

  • 用户定义类型:支持创建自定义数据类型
  • 继承表:支持表继承功能
  • 规则系统:定义查询重写规则
  • 触发器:支持行级和语句级触发器
  • 存储过程:支持多种编程语言(PL/pgSQL、Python、JavaScript 等)
  • 全文搜索:内置全文搜索引擎
  • GIS 扩展:通过 PostGIS 支持地理信息系统

1.4 PostgreSQL vs 其他数据库

                    PostgreSQL    MySQL    Oracle
                       ★★★         ★★       ★★★
功能丰富度             ★★★         ★★       ★★★
性能                   ★★★         ★★★      ★★★
稳定性                 ★★★         ★★       ★★★
学习曲线               ★★          ★★★      ★
社区活跃度             ★★★         ★★★      ★★
许可证                 BSD          GPL      商业

1.5 应用场景

PostgreSQL 适用于多种应用场景:

场景 说明
企业应用 ERP、CRM、电子商务系统
数据仓库 OLAP 分析型应用
地理信息系统 PostGIS 扩展支持
金融系统 高可靠性要求
Web 应用 社交网络、内容管理系统
物联网 时序数据处理

1.6 社区与生态

PostgreSQL 拥有活跃的开源社区和丰富的扩展生态:

  • 官方扩展:pg_trgm、hstore、uuid-ossp
  • 第三方扩展:PostGIS、TimescaleDB、Citus、pgvector
  • 周边工具:pgAdmin、psql、pgBouncer、pgBackRest
  • 云服务:Amazon RDS、Google Cloud SQL、Azure Database

1.7 本章小结

本章介绍了 PostgreSQL 的基本概念和核心特点。PostgreSQL 作为功能最强大的开源关系型数据库,具有以下优势:

  • ✅ 完全符合 SQL 标准
  • ✅ 支持 MVCC 实现高效并发
  • ✅ 丰富的内置数据类型和扩展
  • ✅ 强大的存储过程和触发器支持
  • ✅ 活跃的开源社区和生态系统

📌 下一章预告

下一章将介绍 PostgreSQL 的安装与配置,包括在 Linux、Windows 和 Docker 环境下的安装方法。