第1章 PostgreSQL概述
1.1 PostgreSQL的新颖之处
1.1.1 理解新的数据库管理功能
1.1.2 改良的索引及更好的优化
1.1.3 更好的缓存管理
1.1.4 增强的窗口函数
1.1.5 引入即时编译
1.1.6 增强的分区机制
1.1.7 增加对存储过程的支持
1.1.8 改进的ALTER TABLE
1.2 小结
1.3 常见问题
第2章 理解事务和锁定
2.1 运用PostgreSQL事务
2.1.1 处理事务中的错误
2.1.2 使用SAVEPOINT
2.1.3 事务性DDL
2.2 了解基本的锁定
2.2.1 避免典型错误和显式锁定
2.2.2 考虑可替换的解决方案
2.3 使用FOR SHARE和FOR UPDATE
2.4 了解事务隔离级别
2.5 观察死锁和类似的问题
2.6 利用咨询锁
2.7 优化存储以及控制清理
2.7.1 配置VACUUM和autovacuum
2.7.2 观察工作中的VACUUM
2.7.3 通过利用snapshot too old来限制事务
2.8 小结
2.9 常见问题
第3章 使用索引
3.1 理解简单的查询和代价模型
3.2 使用聚簇表改善速度
3.3 了解额外的btree特性
3.4 引入操作符类
3.5 了解PostgreSQL的索引类型
3.6 用模糊搜索实现更好的回答
3.7 了解全文搜索
3.8 小结
3.9 常见问题
第4章 处理高级SQL
4.1 引入分组集
4.2 使用有序集
4.3 理解假想聚集
4.4 利用窗口函数和分析
4.5 编写自己的聚集
4.6 小结
第5章 日志文件和系统统计信息
5.1 收集运行时统计信息
5.2 创建日志文件
5.3 小结
5.4 常见问题
第6章 优化查询性能
6.1 学习优化器的行为
6.2 理解执行计划
6.3 了解并且固定连接
6.4 启用和禁用优化器设置
6.5 数据分区
6.6 为好的查询性能调整参数
6.7 使用并行查询
6.8 JIT编译
6.9 小结
第7章 编写存储过程
7.1 了解存储过程语言
7.2 了解各种存储过程语言
7.3 改进函数
7.4 将函数用于多种目的
7.5 小结
7.6 常见问题
第8章 管理PostgreSQL的安全性
8.1 管理网络安全性
8.2 深入研究行级安全性—RLS
8.3 检查权限
8.4 重新分配对象以及删除用户
8.5 小结
8.6 常见问题
第9章 处理备份和恢复
9.1 执行简单的转储
9.2 处理多种数据格式
9.3 重放备份
9.4 处理全局数据
9.5 小结
9.6 常见问题
第10章 理解备份与复制
10.1 理解事务日志
10.2 事务日志归档与恢复
10.3 设置异步复制
10.4 升级成同步复制
10.5 利用复制槽
10.6 使用CREATE PUBLICATION以及CREATE SUBSCRIPTION
10.7 小结
10.8 常见问题
第11章 选取有用的扩展
11.1 理解扩展如何工作
11.2 利用contrib模块
11.3 其他有用的扩展
11.4 小结
第12章 检修PostgreSQL
12.1 着手处理一个陌生的数据库
12.2 检查pg_stat_activity
12.3 检查慢查询
12.4 检查日志
12.5 检查缺失的索引
12.6 检查内存和I/O
12.7 了解值得注意的错误场景
12.8 小结
12.9 常见问题
第13章 迁移到PostgreSQL
13.1 把SQL语句迁移到PostgreSQL
13.2 从Oracle转向PostgreSQL
13.2.4ora_migrator—快速从Oracle迁移到PostgreSQL
13.3 从MySQL或MariaDB转向PostgreSQL
13.4 小结