注重体验与质量的电子书资源下载网站
分类于: 职场办公 互联网
简介
由浅入深PostgreSQL 豆 0.0分
资源最后更新于 2020-10-05 18:41:47
作者:Hans-Jürgen Schönig
译者:彭煜玮
出版社:清华大学出版社
出版日期:2018-01
ISBN:9787302512882
文件格式: pdf
标签: postgresql PostgreSQL 数据库 待看 专业之数据库
简介· · · · · ·
本书从一位资深PostgreSQL 专家在多年咨询、技术支持工作中的切身体会出发,深入介绍了开源数据
库管理系统PostgreSQL 9.6 版本中的主要特性,其内容涵盖了作为一个PostgreSQL 数据库从业人员经常会
接触到的主题:事务和锁定、索引的使用、高级SQL 处理、日志文件和统计信息、查询优化、存储过程、
安全性、备份与恢复、复制、各类扩展、故障排查、系统迁移。作者通过亲身经历和直观的例子,详细介
绍了PostgreSQL 主要特性的工作原理、常用配置以及常见的误区,是一本实用性很强的PostgreSQL 进阶指
南,能帮助有一定PostgreSQL 知识的读者深入了解PostgreSQL 中更多更全面的高级特性。
本书适合数据库管理人员和开发人员了解和学习PostgreSQL。通过阅读本书,读者可以对PostgreSQL
有一个全面透...
目录
第1章 PostgreSQL概述
1.1 PostgreSQL 9.6 中有什么新技术
1.1.1 理解新的数据库管理功能
1.1.2 探究新的SQL和开发者相关的功能
1.1.3 使用新的备份和复制功能
1.1.4 理解性能相关的特性
1.2 总结
第2章 理解事务和锁定
2.1 使用PostgreSQL事务
2.1.1 在事务内处理错误
2.1.2 使用保存点
2.1.3 事务性DDL
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 总结
第3章 使用索引
3.1 理解简单查询和代价模型
3.1.1 使用EXPLAIN
3.1.2 深究PostgreSQL代价模型
3.1.3 部署简单的索引
3.1.4 使用排序输出
3.1.5 一次使用多个索引
3.1.6 以一种聪明的方式使用索引
3.2 使用聚簇表改善速度
3.2.1 聚簇表
3.2.2 使用只用索引的扫描
3.3 理解另外的B-树特性
3.3.1 组合索引
3.3.2 增加函数索引
3.3.3 减少空间消耗
3.3.4 在建立索引时添加数据
3.4 引入操作符类
3.5 理解PostgreSQL索引类型
3.5.1 Hash索引
3.5.2 GiST索引
3.5.3 GIN索引
3.5.4 SP-GiST索引
3.5.5 BRIN索引
3.5.6 增加额外索引
3.6 用模糊搜索实现更好的回答
3.6.1 利用pg_trgm
3.6.2 加速LIKE查询
3.6.3 处理正则表达式
3.7 理解全文搜索-FTS
3.7.1 比较字符串
3.7.2 定义GIN索引
3.7.3 调试用户的搜索
3.7.4 收集词统计信息
3.7.5 利用排除操作符
3.8 总结
第4章 处理高级SQL
4.1 引入分组集
4.1.1 装载一些案例数据
4.1.2 应用分组集
4.1.3 组合分组集和FILTER子句
4.2 使用有序集
4.3 理解假想聚集
4.4 利用窗口函数和分析
4.4.1 划分数据
4.4.2 在窗口中排序数据
4.4.3 使用滑动窗口
4.4.4 提取窗口子句
4.4.5 使用内建窗口函数
4.5 编写自己的聚集
4.5.1 创建简单的聚集
4.5.2 为并行查询增加支持
4.5.3 改进效率
4.5.4 编写假想聚集
4.6 总结
第5章 日志文件和系统统计信息
5.1 收集运行时统计信息
5.2 创建日志文件
5.3 总结
第6章 优化查询获得良好性能
6.1 学习优化器的行为
6.2 理解执行计划
6.2.1 系统地处理计划
6.2.2 发现问题
6.3 理解并且固定连接
6.3.1 正确使用连接
6.3.2 处理外连接
6.3.3 理解join_collapse_limit变量
6.4 启用和禁用优化器设置
6.5 分区数据
6.5.1 创建分区
6.5.2 应用表约束
6.5.3 修改继承的结构
6.5.4 在分区结构中移进和移出表
6.5.5 清理数据
6.6 为好的查询性能调整参数
6.6.1 加速排序
6.6.2 加速管理任务
6.7 总结
第7章 编写存储过程
7.1 理解存储过程语言
7.2 理解各种存储过程语言
7.2.1 引入PL/pgSQL
7.2.2 引入PL/Perl
7.2.3 引入PL/Python
7.3 改进存储过程的性能
7.4 使用存储过程
7.5 总结
第8章 管理PostgreSQL安全性
8.1 管理网络安全性
8.1.1 理解绑定地址和连接
8.1.2 管理pg_hba.conf
8.1.3 处理实例级安全性
8.1.4 定义数据库级安全性
8.1.5 调整方案级权限
8.1.6 使用表
8.1.7 处理列级安全性
8.1.8 配置默认特权
8.2 深入行级安全性-RLS
8.3 检查权限
8.4 再分配对象和删除用户
8.5 总结
第9章 处理备份和恢复
9.1 执行简单转储
9.1.1 运行pg_dump
9.1.2 传递口令和连接信息
9.1.3 提取数据的子集
9.1.4 处理多种数据格式
9.2 重放备份
9.3 处理全局数据
9.4 总结
第10章 理解备份和复制
10.1 理解事务日志
10.1.1 察看事务日志
10.1.2 理解检查点
10.1.3 优化事务日志
10.2 事务日志归档和恢复
10.2.1 为归档进行配置
10.2.2 配置pg_hba.conf文件
10.2.3 创建基础备份
10.2.4 重放事务日志
10.2.5 清理事务日志归档
10.3 设置异步复制
10.3.1 执行基本设置
10.3.2 停止和继续复制
10.3.3 检查复制以确保可用性
10.3.4 执行故障转移以及理解时间线
10.3.5 管理冲突
10.3.6 让复制更可靠
10.4 升级到同步复制
10.5 利用复制槽
10.5.1 处理物理复制槽
10.5.2 处理逻辑复制槽
10.6 总结
第11章 选定有用的扩展
11.1 理解扩展如何工作
11.2 利用contrib模块
11.2.1 使用adminpack
11.2.2 应用布隆过滤器
11.2.3 部署btree_gist和btree_gin
11.2.4 Dblink-考虑逐步淘汰
11.2.5 用file_fdw取得文件数据
11.2.6 使用pageinspect检查存储
11.2.7 用pg_buffercache研究缓冲
11.2.8 用pgcrypto加密数据
11.2.9 用pg_prewarm预热缓冲
11.2.1 0用pg_stat_statements检查性能
11.2.1 1用pgstattuple检查存储
11.2.1 2用pg_trgm进行模糊搜索
11.2.1 3使用postgres_fdw连接到远程服务器
11.3 其他有用的扩展
11.4 总结
第12章 在PostgreSQL中排查错误
12.1 着手处理一个陌生的数据库
12.2 检查pg_stat_activity
12.3 检查慢查询
12.3.1 检查个体查询
12.3.2 用perf深入研究
12.4 检查日志
12.5 检查缺失的索引
12.6 检查内存和I/O
12.7 了解值得注意的错误场景
12.7.1 面对clog损坏
12.7.2 理解检查点消息
12.7.3 管理损坏的数据页面
12.7.4 粗心的连接管理
12.7.5 与表膨胀斗争
12.8 总结
第13章 迁移到PostgreSQL
13.1 迁移SQL语句到PostgreSQL
13.1.1 使用侧连接
13.1.2 使用分组集
13.1.3 使用WITH子句-公共表表达式
13.1.4 使用WITH RECURSIVE子句
13.1.5 使用FILTER子句
13.1.6 使用窗口函数
13.1.7 使用有序集——WITHIN GROUP子句
13.1.8 使用TABLESAMPLE子句
13.1.9 使用limit/offset
13.1.1 0使用OFFSET
13.1.1 1使用临时表
13.1.1 2匹配时间序列中的模式
13.2 从Oracle转移到PostgreSQL
13.2.1 使用oracle_fdw扩展转移数据
13.2.2 使用ora2pg从Oracle迁移
13.2.3 常见的陷阱
13.3 从MySQL或MariaDB转移到PostgreSQL
13.3.1 处理MySQL和MariaDB中的数据
13.3.2 迁移数据和模式
13.4 总结
1.1 PostgreSQL 9.6 中有什么新技术
1.1.1 理解新的数据库管理功能
1.1.2 探究新的SQL和开发者相关的功能
1.1.3 使用新的备份和复制功能
1.1.4 理解性能相关的特性
1.2 总结
第2章 理解事务和锁定
2.1 使用PostgreSQL事务
2.1.1 在事务内处理错误
2.1.2 使用保存点
2.1.3 事务性DDL
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 总结
第3章 使用索引
3.1 理解简单查询和代价模型
3.1.1 使用EXPLAIN
3.1.2 深究PostgreSQL代价模型
3.1.3 部署简单的索引
3.1.4 使用排序输出
3.1.5 一次使用多个索引
3.1.6 以一种聪明的方式使用索引
3.2 使用聚簇表改善速度
3.2.1 聚簇表
3.2.2 使用只用索引的扫描
3.3 理解另外的B-树特性
3.3.1 组合索引
3.3.2 增加函数索引
3.3.3 减少空间消耗
3.3.4 在建立索引时添加数据
3.4 引入操作符类
3.5 理解PostgreSQL索引类型
3.5.1 Hash索引
3.5.2 GiST索引
3.5.3 GIN索引
3.5.4 SP-GiST索引
3.5.5 BRIN索引
3.5.6 增加额外索引
3.6 用模糊搜索实现更好的回答
3.6.1 利用pg_trgm
3.6.2 加速LIKE查询
3.6.3 处理正则表达式
3.7 理解全文搜索-FTS
3.7.1 比较字符串
3.7.2 定义GIN索引
3.7.3 调试用户的搜索
3.7.4 收集词统计信息
3.7.5 利用排除操作符
3.8 总结
第4章 处理高级SQL
4.1 引入分组集
4.1.1 装载一些案例数据
4.1.2 应用分组集
4.1.3 组合分组集和FILTER子句
4.2 使用有序集
4.3 理解假想聚集
4.4 利用窗口函数和分析
4.4.1 划分数据
4.4.2 在窗口中排序数据
4.4.3 使用滑动窗口
4.4.4 提取窗口子句
4.4.5 使用内建窗口函数
4.5 编写自己的聚集
4.5.1 创建简单的聚集
4.5.2 为并行查询增加支持
4.5.3 改进效率
4.5.4 编写假想聚集
4.6 总结
第5章 日志文件和系统统计信息
5.1 收集运行时统计信息
5.2 创建日志文件
5.3 总结
第6章 优化查询获得良好性能
6.1 学习优化器的行为
6.2 理解执行计划
6.2.1 系统地处理计划
6.2.2 发现问题
6.3 理解并且固定连接
6.3.1 正确使用连接
6.3.2 处理外连接
6.3.3 理解join_collapse_limit变量
6.4 启用和禁用优化器设置
6.5 分区数据
6.5.1 创建分区
6.5.2 应用表约束
6.5.3 修改继承的结构
6.5.4 在分区结构中移进和移出表
6.5.5 清理数据
6.6 为好的查询性能调整参数
6.6.1 加速排序
6.6.2 加速管理任务
6.7 总结
第7章 编写存储过程
7.1 理解存储过程语言
7.2 理解各种存储过程语言
7.2.1 引入PL/pgSQL
7.2.2 引入PL/Perl
7.2.3 引入PL/Python
7.3 改进存储过程的性能
7.4 使用存储过程
7.5 总结
第8章 管理PostgreSQL安全性
8.1 管理网络安全性
8.1.1 理解绑定地址和连接
8.1.2 管理pg_hba.conf
8.1.3 处理实例级安全性
8.1.4 定义数据库级安全性
8.1.5 调整方案级权限
8.1.6 使用表
8.1.7 处理列级安全性
8.1.8 配置默认特权
8.2 深入行级安全性-RLS
8.3 检查权限
8.4 再分配对象和删除用户
8.5 总结
第9章 处理备份和恢复
9.1 执行简单转储
9.1.1 运行pg_dump
9.1.2 传递口令和连接信息
9.1.3 提取数据的子集
9.1.4 处理多种数据格式
9.2 重放备份
9.3 处理全局数据
9.4 总结
第10章 理解备份和复制
10.1 理解事务日志
10.1.1 察看事务日志
10.1.2 理解检查点
10.1.3 优化事务日志
10.2 事务日志归档和恢复
10.2.1 为归档进行配置
10.2.2 配置pg_hba.conf文件
10.2.3 创建基础备份
10.2.4 重放事务日志
10.2.5 清理事务日志归档
10.3 设置异步复制
10.3.1 执行基本设置
10.3.2 停止和继续复制
10.3.3 检查复制以确保可用性
10.3.4 执行故障转移以及理解时间线
10.3.5 管理冲突
10.3.6 让复制更可靠
10.4 升级到同步复制
10.5 利用复制槽
10.5.1 处理物理复制槽
10.5.2 处理逻辑复制槽
10.6 总结
第11章 选定有用的扩展
11.1 理解扩展如何工作
11.2 利用contrib模块
11.2.1 使用adminpack
11.2.2 应用布隆过滤器
11.2.3 部署btree_gist和btree_gin
11.2.4 Dblink-考虑逐步淘汰
11.2.5 用file_fdw取得文件数据
11.2.6 使用pageinspect检查存储
11.2.7 用pg_buffercache研究缓冲
11.2.8 用pgcrypto加密数据
11.2.9 用pg_prewarm预热缓冲
11.2.1 0用pg_stat_statements检查性能
11.2.1 1用pgstattuple检查存储
11.2.1 2用pg_trgm进行模糊搜索
11.2.1 3使用postgres_fdw连接到远程服务器
11.3 其他有用的扩展
11.4 总结
第12章 在PostgreSQL中排查错误
12.1 着手处理一个陌生的数据库
12.2 检查pg_stat_activity
12.3 检查慢查询
12.3.1 检查个体查询
12.3.2 用perf深入研究
12.4 检查日志
12.5 检查缺失的索引
12.6 检查内存和I/O
12.7 了解值得注意的错误场景
12.7.1 面对clog损坏
12.7.2 理解检查点消息
12.7.3 管理损坏的数据页面
12.7.4 粗心的连接管理
12.7.5 与表膨胀斗争
12.8 总结
第13章 迁移到PostgreSQL
13.1 迁移SQL语句到PostgreSQL
13.1.1 使用侧连接
13.1.2 使用分组集
13.1.3 使用WITH子句-公共表表达式
13.1.4 使用WITH RECURSIVE子句
13.1.5 使用FILTER子句
13.1.6 使用窗口函数
13.1.7 使用有序集——WITHIN GROUP子句
13.1.8 使用TABLESAMPLE子句
13.1.9 使用limit/offset
13.1.1 0使用OFFSET
13.1.1 1使用临时表
13.1.1 2匹配时间序列中的模式
13.2 从Oracle转移到PostgreSQL
13.2.1 使用oracle_fdw扩展转移数据
13.2.2 使用ora2pg从Oracle迁移
13.2.3 常见的陷阱
13.3 从MySQL或MariaDB转移到PostgreSQL
13.3.1 处理MySQL和MariaDB中的数据
13.3.2 迁移数据和模式
13.4 总结