第一章: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 环境下的安装方法。