1. PostgreSQL 基础入门
📌 目标:
- 掌握 PostgreSQL 的安装、配置和基本操作
- 熟悉基本的 SQL 语法
📝 学习内容:
-
PostgreSQL 安装与配置
- 安装 PostgreSQL:Windows、Linux(Debian、CentOS)、macOS
- 使用 pgAdmin 进行管理和可视化操作
- 使用 psql 命令行工具
- 配置 PostgreSQL 服务(如监听端口、用户权限等)
-
基本 SQL 语法
- SELECT、INSERT、UPDATE、DELETE
- 基本数据类型:
INTEGER,VARCHAR,TEXT,DATE,BOOLEAN - 数据库、表、索引、视图等基本对象的创建和管理
-
查询语法基础
- 条件查询:
WHERE,ORDER BY,GROUP BY,HAVING - 聚合函数:
COUNT,SUM,AVG,MAX,MIN - 字符串、日期处理函数
- 条件查询:
-
事务处理
- ACID 原则
BEGIN,COMMIT,ROLLBACK- 锁机制:行级锁、表级锁
2. 进阶:SQL 高级特性
📌 目标:
- 深入理解 PostgreSQL 的高级功能和优化技巧
📝 学习内容:
-
高级查询技巧
- 联接:
INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN - 子查询:嵌套查询、关联子查询
WITH子句(CTE:公共表达式)WINDOW函数:ROW_NUMBER,RANK,LEAD,LAG
- 联接:
-
数据完整性与约束
- 主键、外键、唯一约束
- 检查约束(
CHECK) - 默认值、空值处理(
NOT NULL,DEFAULT) - 自定义数据类型与约束
-
索引与优化
- 常见索引类型:
B-tree,GIN,GiST,Hash - 索引的使用和优化:
CREATE INDEX,EXPLAIN分析查询计划 - 查询优化:查询计划的分析、优化器(
ANALYZE,VACUUM)
- 常见索引类型:
-
视图和物化视图
VIEW、MATERIALIZED VIEW的创建与使用- 物化视图的刷新机制
3. 高级:PostgreSQL 特性与扩展
📌 目标:
- 学会使用 PostgreSQL 的高级特性,能在生产环境中高效使用
📝 学习内容:
-
PostgreSQL 扩展
- 安装和使用 PostgreSQL 扩展:
pg_stat_statements,pg_partman,pg_trgm等 - PostGIS:空间数据库扩展,支持地理数据类型和操作
- TimescaleDB:时序数据库扩展,适合大规模时序数据存储与查询
- 安装和使用 PostgreSQL 扩展:
-
存储过程与触发器
- 创建和使用
PL/pgSQL存储过程 - 使用触发器(Triggers)自动处理数据变化事件
- 创建和使用
-
事务隔离级别与并发控制
- 理解事务隔离级别:
READ COMMITTED,REPEATABLE READ,SERIALIZABLE - 行级锁(
FOR UPDATE)与死锁检测
- 理解事务隔离级别:
-
复制与高可用性
- Streaming Replication:主从复制配置与管理
- Logical Replication:逻辑复制的配置与使用
- 故障转移和高可用性:使用
pgpool,Patroni,repmgr等工具 - 自动故障恢复:设置自动切换与恢复机制
-
备份与恢复
- 使用
pg_dump和pg_restore进行数据库备份与恢复 - WAL (Write-Ahead Logging) 日志归档与 PITR(点时间恢复)
- 使用
4. PostgreSQL 性能调优与监控
📌 目标:
- 深入理解 PostgreSQL 的性能优化原理,能够调优系统性能
📝 学习内容:
-
性能调优
- 基础调优:调整
shared_buffers,work_mem,maintenance_work_mem,effective_cache_size等配置 - 查询优化:使用
EXPLAIN ANALYZE分析查询执行计划,避免全表扫描,合理使用索引 - 索引优化:合理选择索引类型、避免不必要的索引
- 基础调优:调整
-
并发和锁优化
- 高并发下的行级锁和死锁分析
vacuum和autovacuum的配置与优化- 数据库负载均衡与资源分配
-
PostgreSQL 监控
- 使用
pg_stat_activity和pg_stat_user_tables等视图监控数据库状态 - 第三方工具:
pgAdmin,Prometheus+Grafana监控面板 - 系统级监控:使用
top,htop,iostat等工具监控系统资源
- 使用
5. 生产实践与架构设计
📌 目标:
- 在生产环境中设计高效、安全、可扩展的 PostgreSQL 系统
📝 学习内容:
-
分库分表与数据分区
- 理解分区表的概念和配置,使用
PARTITION BY分区数据 - 分库分表方案设计:水平分库、垂直分库
- 使用分区和分片工具:
pg_partman、Citus
- 理解分区表的概念和配置,使用
-
高并发系统架构设计
- PostgreSQL 与缓存(Redis、Memcached)配合使用
- 使用异步任务队列:
pg_notify,与后台任务服务(如 Celery)配合 - 读写分离与负载均衡架构设计
-
安全性与权限管理
- 数据加密:SSL/TLS、字段加密
- 用户权限管理:基于角色的权限控制
- 审计与日志管理
-
容灾与备份策略
- 定期备份、增量备份、日志备份
- 故障恢复演练和应急预案
6. 实际项目与案例
在你掌握了 PostgreSQL 的基本操作与高级特性后,接下来的学习应该通过 实际项目 来巩固你的技能:
- 案例 1:电商系统的数据库设计
设计一个高并发、高可用的电商后台系统数据库,重点考虑表设计、索引优化、分库分表、缓存机制。 - 案例 2:金融风控系统的数据库架构
设计金融类系统,重点考虑数据一致性、事务隔离级别、备份与恢复策略、高可用性。 - 案例 3:日志分析系统的数据库设计
使用 PostgreSQL 存储和分析海量日志数据,使用时序数据和扩展如 TimescaleDB,设计高效的查询与存储方案。
学习资源推荐:
-
官方文档
-
书籍
- 《PostgreSQL: Up and Running》
- 《Mastering PostgreSQL in Application Development》
-
在线教程与视频