PostgreSQL 学习资料大全:从入门到精通
一、学习路线图总览
[入门] 基础概念 / 安装 / 基础 SQL / CRUD
│
▼
[进阶] 复杂查询 / 事务 / 索引 / 约束 / JSONB
│
▼
[高级] 执行计划优化 / 窗口函数 / CTE / 分区 / 备份恢复 / 复制
│
▼
[精通] MVCC 原理 / 高可用架构 / 连接池 / 监控 / 扩展 / 源码级调优
四个阶段对应能力目标:
| 阶段 | 核心能力 | 标志性关键词 |
|---|---|---|
| 入门 | 装好环境、写基础 SQL、能建表增删改查 | psql、CREATE TABLE、SELECT、INSERT |
| 进阶 | 复杂查询、事务控制、索引与约束设计 | JOIN、CTE、Window Function、INDEX、JSONB、TRANSACTION |
| 高级 | 性能优化、分区、备份恢复、主从复制 | EXPLAIN、Partitioning、pg_dump、Streaming Replication |
| 精通 | 内核原理、高可用、监控、扩展生态 | MVCC、WAL、Patroni、PgBouncer、PostGIS |
编程资源
https://pan.quark.cn/s/7f7c83756948
更多资源
https://pan.quark.cn/s/bda57957c548
二、阶段一:入门(建议 7--10 天)
学习目标
- 理解什么是关系型数据库 / ORDBMS
- 在本地装好 PostgreSQL 并连接
- 掌握基础 SQL:建库建表、增删改查
必学知识点
- 基础概念:数据库、模式(Schema)、表、行、列、主键、数据类型
- 环境搭建 :
- 官方一键安装包(Windows / macOS):https://www.postgresql.org/download/
- 容器方式:
docker run --name pg -e POSTGRES_PASSWORD=xxx -p 5432:5432 -d postgres - 客户端:
psql(命令行)、pgAdmin(图形化)、DBeaver
- 基础 SQL :
SELECT/WHERE/ORDER BY/LIMIT/OFFSET/DISTINCTINSERT/UPDATE/DELETE- 创建对象:
CREATE DATABASE/CREATE TABLE
- 常用数据类型 :
INT、BIGINT、NUMERIC、VARCHAR、TEXT、BOOLEAN、DATE、TIMESTAMP、JSONB
推荐资源
- ⭐ PostgreSQL 官方中文教程(最权威):http://www.postgres.cn/docs/current/tutorial.html
- ⭐ PostgreSQL 官方英文教程:https://www.postgresql.org/docs/current/tutorial.html
- 零基础入门 PostgreSQL 教程(系统性较强):https://www.codefather.cn/post/2029156872631005189
- 练习平台 SQL 自学网(标准 SQL 刷题):https://www.sqlself.com/
三、阶段二:进阶(建议 10--15 天)
学习目标
- 能独立编写复杂查询,应对业务需求
- 理解事务与并发基础
- 掌握索引、约束、JSONB 等 PostgreSQL 特色能力
必学知识点
- 聚合与分组 :
COUNT/SUM/AVG/MAX/MIN、GROUP BY、HAVING - 多表查询(重点) :
INNER JOIN/LEFT JOIN/RIGHT JOIN/FULL OUTER JOINCROSS JOIN/SELF JOIN
- 子查询 :WHERE 子查询、FROM 子查询、
EXISTS - 集合操作 :
UNION/UNION ALL/INTERSECT/EXCEPT - 窗口函数(PostgreSQL 强项) :
- 排序类:
ROW_NUMBER()、RANK()、DENSE_RANK() - 聚合窗口:
SUM() OVER、AVG() OVER - 偏移类:
LAG()、LEAD()、FIRST_VALUE()、LAST_VALUE()
- 排序类:
- CTE 通用表表达式 :
WITH语句、递归 CTE - 事务与并发 :
BEGIN/COMMIT/ROLLBACK、ACID、隔离级别 - 约束 :主键、外键、唯一、检查(
CHECK)、非空 - 视图与物化视图 :
CREATE VIEW/CREATE MATERIALIZED VIEW - JSONB :JSON vs JSONB、增删改查、
->/->>/#>操作符、GIN索引 - 常用函数 :字符串、日期时间(
NOW()、DATE_TRUNC()、EXTRACT())、数学、条件函数(CASE WHEN、COALESCE、NULLIF)
推荐资源
- PostgreSQL Tutorial(英文,条理清晰):https://www.postgresqltutorial.com/
- pgExercises(交互式练习,强烈推荐):https://pgexercises.com/
- 《PostgreSQL 即学即用》(Regina Obe & Leo Hsu,入门友好)
四、阶段三:高级(建议 15--20 天)
学习目标
- 能定位并优化慢查询
- 掌握备份恢复、复制、分区等生产级能力
必学知识点
- 查询优化与执行计划 :
EXPLAIN/EXPLAIN ANALYZE解读- 顺序扫描 vs 索引扫描、连接算法(Nested Loop / Hash Join / Merge Join)
- 统计信息:
ANALYZE、 planner 成本参数
- 高级索引 :
- B-tree(默认)、
GIN(全文检索 / JSONB)、GiST、BRIN、Partial Index、Covering Index(INCLUDE) - 多列索引与最左前缀原则
- B-tree(默认)、
- 表分区 :Range / List / Hash 分区,
PARTITION BY - 存储过程与函数 :
PL/pgSQL、触发器(TRIGGER)、FUNCTION/PROCEDURE - 备份与恢复 :
- 逻辑备份:
pg_dump/pg_dumpall/pg_restore - 物理备份:
pg_basebackup、WAL 归档 - 时间点恢复(PITR)
- 逻辑备份:
- 复制 :
- 流复制(Streaming Replication)、物理 / 逻辑复制
- 读写分离、延迟副本
- ** vacuum 机制**:
VACUUM/ANALYZE、表膨胀、autovacuum 调优 - 安全与权限 :角色(Role)、
GRANT/REVOKE、行级安全(RLS)
推荐资源
- 《PostgreSQL 修炼之道:从小工到专家》(唐成)------ 国内口碑好书,覆盖运维实战
- 《高效使用 PostgreSQL:进阶之路》
- 官方文档「性能优化」章节:https://www.postgresql.org/docs/current/performance-tips.html
- Use The Index, Luke!(索引原理经典教程):https://use-the-index-luke.com/
五、阶段四:精通 / 专家(长期)
学习目标
- 理解内核原理,能做架构设计与深度调优
- 搭建高可用、可监控的生产集群
必学知识点
- 内核原理 :
- MVCC(多版本并发控制)、事务 ID 回卷
- WAL(Write-Ahead Logging)、检查点(Checkpoint)
- 缓冲区管理、共享内存、锁机制(表锁 / 行锁 / 死锁)
- 高可用与集群 :
Patroni+etcd/Consul(自动故障切换)Pgpool-II/repmgr- 负载均衡与连接池:
PgBouncer(推荐,减少连接开销)
- 监控与诊断 :
pg_stat_activity、pg_stat_statements、pg_stat_user_tables- 监控工具:Prometheus + Grafana、pgAdmin Dashboard
- 压测:
pgbench
- 扩展生态(Extension) :
PostGIS(地理空间)、pg_stat_statements(统计)、pg_trgm(模糊搜索)- 全文检索、
FDW(外部数据包装器)
- 配置调优 :
shared_buffers、work_mem、maintenance_work_mem、effective_cache_size、max_connections - 升级与迁移 :大版本升级(
pg_upgrade)、从 MySQL / Oracle 迁移 - 源码级(可选):C 语言基础 + 源码阅读,深入存储引擎与执行器
推荐资源
- ⭐ 《PostgreSQL 14 Internals》(Egor Rogov)------ 内核原理必读
- 《Mastering PostgreSQL 17》(Hans-Jürgen Schönig)------ 高级部署与优化
- 《The Art of PostgreSQL》(Dimitri Fontaine)------ SQL 思维与数据建模
- 《PostgreSQL 16 Administration Cookbook》------ 运维手册式菜谱
- Cybertec 博客:https://www.cybertec-postgresql.com/en/blog/
- 中国 PostgreSQL 分会培训(PGCA / PCE / PCM 认证):http://www.postgresqlchina.com/
六、推荐书籍清单(按阶段选读)
| 书名 | 作者 | 定位 | 适合阶段 |
|---|---|---|---|
| PostgreSQL 即学即用(PostgreSQL: Up and Running) | Regina Obe & Leo Hsu | 快速上手 + 管理入门 | 入门 |
| Learn PostgreSQL(2nd Edition) | Luca Ferrari & Enrico Pirozzi | 端到端系统入门 | 入门→进阶 |
| PostgreSQL 修炼之道:从小工到专家 | 唐成 | 国内运维实战口碑书 | 进阶→高级 |
| PostgreSQL 14 Internals | Egor Rogov | 存储与执行引擎内核 | 精通 |
| Mastering PostgreSQL 17 | Hans-Jürgen Schönig | 高级部署 / 优化 / 安全 | 高级→精通 |
| The Art of PostgreSQL | Dimitri Fontaine | SQL 思维与建模 | 进阶→精通 |
| PostgreSQL 16 Administration Cookbook | Gianni Ciolli 等 | 运维菜谱式手册 | 高级 |
| PostgreSQL Query Optimization | Henrietta Dombrovskaya 等 | 查询优化专题 | 高级 |
| PostgreSQL Mistakes and How to Avoid Them | Jimmy Angelakos | 避坑指南(2025 新版) | 全阶段 |
官方「Books」页面(持续更新):https://www.postgresql.org/docs/books/
七、在线教程 / 练习 / 社区
教程与文档
- 官方文档(英文,最全):https://www.postgresql.org/docs/
- 官方文档(中文,postgres.cn):http://www.postgres.cn/docs/current/
- PostgreSQL Tutorial:https://www.postgresqltutorial.com/
- Redrock Postgres 教程:https://www.redrockpostgres.com/
交互式练习
- pgExercises:https://pgexercises.com/
- SQL 自学网(鱼皮):https://www.sqlself.com/
- LeetCode 数据库题库(实战刷题):https://leetcode.cn/problemset/database/
社区与答疑
- 官方邮件列表:https://www.postgresql.org/list/
- Stack Overflow(标签
postgresql) - 知乎 / CSDN / 博客园 PostgreSQL 专栏
- 中国 PostgreSQL 分会社区
八、高效学习建议
- 边学边练:装好本地环境或 Docker,每个知识点都亲手敲一遍 SQL。
- 官方文档优先:遇到问题先查官方文档,再搜博客;文档是最终真相来源。
- 用 EXPLAIN 倒逼成长 :写任何查询都试着
EXPLAIN ANALYZE一下,理解执行计划。 - 找一个数据集练手:比如导入一个开源项目的示例库,从简单查询逐步尝试高级功能。
- 版本意识:PostgreSQL 演进快,尽量看与所用版本匹配的教材/文档版本。
- 由浅入深别跳级:先能吃透进阶的窗口函数与 CTE,再碰内核原理,避免劝退。
- 考虑认证路线:PGCA(初级)→ PCE(工程师)→ PCM(大师),体系化检验水平。
九、附:30 天速成计划(参考)
| 周次 | 重点 | 产出 |
|---|---|---|
| 第 1 周 | 安装 + 基础 SQL + 数据类型 | 能在 psql 中建库建表并 CRUD |
| 第 2 周 | JOIN / 子查询 / 聚合 / 窗口函数 / CTE | 能写复杂报表查询 |
| 第 3 周 | 事务 / 索引 / 约束 / JSONB / 视图 | 能设计合理表结构与索引 |
| 第 4 周 | EXPLAIN 优化 / 备份恢复 / 复制 / 分区 | 能定位慢查询、做备份与读写分离 |
编程资源
https://pan.quark.cn/s/7f7c83756948
更多资源
https://pan.quark.cn/s/bda57957c548