5.0 用户推荐指数
互联网
类型
7.8
豆瓣评分
可以朗读
语音朗读
159千字
字数
2019-06-01
发行日期
展开全部
主编推荐语
本书全面诠释了PostgreSQL数据库系统的整体架构及各个模块。
内容简介
PostgreSQL是一个开源的多用途关系数据库系统,在世界各地广泛使用。它是一个集成了子系统的庞大系统,每个系统都有一个特殊的复杂功能,并且可以相互协作。对内部机制的理解对于使用PostgreSQL进行管理和集成至关重要,本书从内核逻辑层面展现了PostgreSQL的全貌,并详细分析了PostgreSQL数据库的进程与内存体系结构,并发控制的原理及多种场景的流程、内存管理机制、预写日志的文件结构、流复制等多个子系统的的原理细节。
目录
- 版权信息
- 内容简介
- 推荐序
- 译者序
- 作者序
- 第1章 数据库集簇、数据库和数据表
- 1.1 数据库集簇的逻辑结构
- 1.2 数据库集簇的物理结构
- 1.2.1 数据库集簇的布局
- 1.2.2 数据库布局
- 1.2.3 表和索引相关文件的布局
- 1.2.4 PostgreSQL中表空间的布局
- 1.3 堆表文件的内部布局
- 1.4 读写元组的方式
- 1.4.1 写入堆元组
- 1.4.2 读取堆元组
- 第2章 进程和内存架构
- 2.1 进程架构
- 2.1.1 Postgres服务器进程
- 2.1.2 后端进程
- 2.1.3 后台进程
- 2.2 内存架构
- 2.2.1 本地内存区域
- 2.2.2 共享内存区域
- 第3章 查询处理
- 3.1 概览
- 3.1.1 解析器
- 3.1.2 分析器
- 3.1.3 重写器
- 3.1.4 计划器与执行器
- 3.2 单表查询的代价估计
- 3.2.1 顺序扫描
- 3.2.2 索引扫描
- 3.2.3 排序
- 3.3 创建单表查询的计划树
- 3.3.1 预处理
- 3.3.2 找出代价最小的访问路径
- 3.3.3 创建计划树
- 3.4 执行器如何工作
- 3.5 连接
- 3.5.1 嵌套循环连接
- 3.5.2 归并连接
- 3.5.3 散列连接
- 3.5.4 连接访问路径与连接节点
- 3.6 创建多表查询计划树
- 3.6.1 预处理
- 3.6.2 获取代价最小的路径
- 3.6.3 获取三表查询代价最小的路径
- 参考文献
- 第4章 外部数据包装器
- 4.1 概述
- 4.1.1 创建一棵查询树
- 4.1.2 连接至远程服务器
- 4.1.3 使用EXPLAIN命令创建计划树(可选)
- 4.1.4 逆解析
- 4.1.5 发送SQL命令并接收结果
- 4.2 postgres_fdw的工作原理
- 4.2.1 多表查询
- 9.6或更高版本:
- 4.2.2 排序操作
- 4.2.3 聚合函数
- 第5章 并发控制
- 5.1 事务标识
- 5.2 元组结构
- 5.3 元组的增、删、改
- 5.3.1 插入
- 5.3.2 删除
- 5.3.3 更新
- 5.3.4 空闲空间映射
- 5.4 提交日志
- 5.4.1 事务状态
- 5.4.2 提交日志如何工作
- 5.4.3 提交日志的维护
- 5.5 事务快照
- 5.6 可见性检查规则
- 5.6.1 t_xmin的状态为ABORTED
- 5.6.2 t_xmin的状态为IN_PROGRESS
- 5.6.3 t_xmin的状态为COMMITTED
- 5.7 可见性检查
- 5.7.1 可见性检查的过程
- 5.7.2 PostgreSQL可重复读等级中的幻读
- 5.8 防止丢失更新
- 5.8.1 并发UPDATE命令的行为
- 5.8.2 例子
- 5.9 可串行化快照隔离
- 5.9.1 SSI实现的基本策略
- 5.9.2 PostgreSQL的SSI实现
- 5.9.3 SSI的原理
- 5.9.4 假阳性的串行化异常
- 5.10 需要的维护进程
- 参考文献
- 第6章 清理过程
- 6.1 并发清理概述
- 6.1.1 第一部分
- 6.1.2 第二部分
- 6.1.3 第三部分
- 6.1.4 后续处理
- 6.2 可见性映射
- 6.3 冻结过程
- 6.3.1 惰性模式
- 6.3.2 迫切模式
- 6.3.3 改进迫切模式中的冻结过程
- 6.4 移除不必要的CLOG文件
- 6.5 自动清理守护进程
- 6.6 完整清理
- 第7章 堆内元组和仅索引扫描
- 7.1 堆内元组
- 7.1.1 没有HOT时的行更新
- 7.1.2 HOT如何工作
- 7.2 仅索引扫描
- 第8章 缓冲区管理器
- 8.1 概览
- 8.2 缓冲区管理器的结构
- 8.2.1 缓冲表
- 8.2.2 缓冲区描述符
- 8.2.3 缓冲区描述符层
- 8.2.4 缓冲池
- 8.3 缓冲区管理器锁
- 8.3.1 缓冲表锁
- 8.3.2 缓冲区描述符相关的锁
- 8.4 缓冲区管理器的工作原理
- 8.4.1 访问存储在缓冲池中的页面
- 8.4.2 将页面从存储加载到空槽
- 8.4.3 将页面从存储加载到受害者缓冲池槽
- 8.4.4 页面替换算法:时钟扫描
- 8.5 环形缓冲区
- 8.6 脏页刷盘
- 第9章 WAL
- 9.1 概述
- 9.1.1 没有WAL的插入操作
- 9.1.2 插入操作与数据库恢复
- 9.1.3 整页写入
- 9.2 事务日志与WAL段文件
- 9.3 WAL段文件的内部布局
- 9.4 WAL记录的内部布局
- 9.4.1 WAL记录首部部分
- 9.4.2 XLOG记录的数据部分(9.4及更低版本)
- 9.4.3 XLOG记录的数据部分(9.5及更高版本)
- 9.5 WAL记录的写入
- 9.6 WAL写入进程
- 9.7 PostgreSQL中的检查点进程
- 9.7.1 检查点进程概述
- 9.7.2 pg_crontrol文件
- 9.8 PostgreSQL中的数据库恢复
- 9.9 WAL段文件管理
- 9.9.1 WAL段切换
- 9.9.2 WAL段管理(9.5及更高版本)
- 9.9.3 WAL段管理(9.4及更低版本)
- 9.10 持续归档与归档日志
- 第10章 基础备份与时间点恢复
- 10.1 基础备份
- 10.1.1 pg_start_backup
- 10.1.2 pg_stop_backup
- 10.2 时间点恢复(PITR)的工作原理
- 10.3 时间线与时间线历史文件
- 10.3.1 时间线标识
- 10.3.2 时间线历史文件
- 10.4 时间点恢复与时间线历史文件
- 第11章 流复制
- 11.1 流复制的启动
- 11.2 如何实施流复制
- 11.2.1 主从间的通信
- 11.2.2 发生故障时的行为
- 11.3 管理多个备库
- 11.3.1 同步优先级与同步状态
- 11.3.2 主库如何管理多个备库
- 11.3.3 发生故障时的行为
- 11.4 备库的故障检测
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。