展开全部

主编推荐语

本书全面诠释了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 备库的故障检测
展开全部

评分及书评

5.0
3个评分
  • 用户头像
    给这本书评了
    5.0

    本书介绍了 PostgreSQL 内部的工作原理,包括数据库对象的逻辑组织与物理实现,进程与内存的架构,并依次剖析了几个重要的子系统:查询处理、外部数据包装器、并发控制、清理过程、缓冲区管理、WAL、备份及流复制。本书为 DBA 与系统开发者提供了一幅全景概念地图,有助于读者形成对数据库实现的整体认识,亦可作为深入学习 PostgreSQL 源代码的导读手册,对于理解数据库原理与 PostgreSQL 内部实现大有裨益。

      转发
      评论

    出版方

    电子工业出版社

    电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。