您好,欢迎光临有路网!
PostgreSQL指南:内幕探索
QQ咨询:
有路璐璐:

PostgreSQL指南:内幕探索

  • 作者:(日)Hironobu Suzuki(铃木启修)
  • 出版社:电子工业出版社
  • ISBN:9787121357091
  • 出版日期:2019年05月01日
  • 页数:244
  • 定价:¥79.00
  • 猜你也喜欢

    分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书介绍了 PostgreSQL 内部的工作原理,包括数据库对象的逻辑组织与物理实现,进程与内存的架构。并依次剖析了几个重要的子系统:查询处理、外部数据包装器、并发控制、清理过程、缓冲 区管理、WAL、备份及流复制。本书为 DBA 与系统***提供了一幅全景概念地图,有助于读者形 成对数据库实现的整体认识,亦可作为深入学习 PostgreSQL 源代码的导读手册,对于理解数据库原 理与 PostgreSQL 内部实现大有裨益。 本书适合数据库开发人员及相关领域的研究人员、数据库 DBA 及高等院校相关专业的学生阅读。
    目录
    第1章 数据库集簇、数据库和数据表1 1.1 数据库集簇的逻辑结构1 1.2 数据库集簇的物理结构2 1.2.1 数据库集簇的布局3 1.2.2 数据库布局4 1.2.3 表和索引相关文件的布局5 1.2.4 PostgreSQL中表空间的布局7 1.3 堆表文件的内部布局8 1.4 读写元组的方式11 1.4.1 写入堆元组11 1.4.2 读取堆元组12 第2章 进程和内存架构14 2.1 进程架构14 2.1.1 Postgres服务器进程15 2.1.2 后端进程15 2.1.3 后台进程16 2.2 内存架构17 2.2.1 本地内存区域17 2.2.2 共享内存区域18 第3章 查询处理19 3.1 概览20 3.1.1 解析器20 3.1.2 分析器22 3.1.3 重写器24 3.1.4 计划器与执行器25 3.2 单表查询的代价估计27 3.2.1 顺序扫描28 3.2.2 索引扫描29 3.2.3 排序36 3.3 创建单表查询的计划树38 3.3.1 预处理41 3.3.2 找出代价*小的访问路径42 3.3.3 创建计划树51 3.4 执行器如何工作55 3.5 连接57 3.5.1 嵌套循环连接57 3.5.2 归并连接63 3.5.3 散列连接67 3.5.4 连接访问路径与连接节点73 3.6 创建多表查询计划树76 3.6.1 预处理76 3.6.2 获取代价*小的路径77 3.6.3 获取三表查询代价*小的路径81 参考文献83 第4章 外部数据包装器84 4.1 概述85 4.1.1 创建一棵查询树86 4.1.2 连接至远程服务器86 4.1.3 使用EXPLAIN命令创建计划树(可选)87 4.1.4 逆解析87 4.1.5 发送SQL命令并接收结果88 4.2 POSTGRES_FDW的工作原理90 4.2.1 多表查询91 4.2.2 排序操作97 4.2.3 聚合函数98 第5章 并发控制101 5.1 事务标识103 5.2 元组结构104 5.3 元组的增、删、改106 5.3.1 插入106 5.3.2 删除107 5.3.3 更新108 5.3.4 空闲空间映射109 5.4 提交日志110 5.4.1 事务状态110 5.4.2 提交日志如何工作110 5.4.3 提交日志的维护111 5.5 事务快照111 5.6 可见性检查规则114 5.6.1 t_xmin的状态为ABORTED115 5.6.2 t_xmin的状态为IN_PROGRESS115 5.6.3 t_xmin的状态为COMMITTED116 5.7 可见性检查118 5.7.1 可见性检查的过程118 5.7.2 PostgreSQL可重复读等级中的幻读122 5.8 防止丢失更新122 5.8.1 并发UPDATE命令的行为123 5.8.2 例子125 5.9 可串行化快照隔离127 5.9.1 SSI实现的基本策略127 5.9.2 PostgreSQL的SSI实现128 5.9.3 SSI的原理129 5.9.4 假阳性的串行化异常132 5.10 需要的维护进程134 参考文献136 第6章 清理过程137 6.1 并发清理概述138 6.1.1 **部分139 6.1.2 第二部分140 6.1.3 第三部分140 6.1.4 后续处理141 6.2 可见性映射141 6.3 冻结过程142 6.3.1 惰性模式142 6.3.2 迫切模式143 6.3.3 改进迫切模式中的冻结过程146 6.4 移除不必要的CLOG文件147 6.5 自动清理守护进程148 6.6 完整清理148 第7章 堆内元组和仅索引扫描153 7.1 堆内元组153 7.1.1 没有HOT时的行更新153 7.1.2 HOT如何工作154 7.2 仅索引扫描157 第8章 缓冲区管理器160 8.1 概览161 8.2 缓冲区管理器的结构163 8.2.1 缓冲表164 8.2.2 缓冲区描述符165 8.2.3 缓冲区描述符层167 8.2.4 缓冲池169 8.3 缓冲区管理器锁169 8.3.1 缓冲表锁170 8.3.2 缓冲区描述符相关的锁170 8.4 缓冲区管理器的工作原理174 8.4.1 访问存储在缓冲池中的页面174 8.4.2 将页面从存储加载到空槽175 8.4.3 将页面从存储加载到受害者缓冲池槽176 8.4.4 页面替换算法:时钟扫描178 8.5 环形缓冲区180 8.6 脏页刷盘181 第9章 WAL182 9.1 概述183 9.1.1 没有WAL的插入操作183 9.1.2 插入操作与数据库恢复184 9.1.3 整页写入186 9.2 事务日志与WAL段文件188 9.3 WAL段文件的内部布局190 9.4 WAL记录的内部布局191 9.4.1 WAL记录首部部分191 9.4.2 XLOG记录的数据部分(9.4及更低版本)193 9.4.3 XLOG记录的数据部分(9.5及更高版本)196 9.5 WAL记录的写入200 9.6 WAL写入进程203 9.7 POSTGRESQL中的检查点进程203 9.7.1 检查点进程概述204 9.7.2 pg_crontrol文件205 9.8 POSTGRESQL中的数据库恢复206 9.9 WAL段文件管理209 9.9.1 WAL段切换209 9.9.2 WAL段管理(9.5及更高版本)209 9.9.3 WAL段管理(9.4及更低版本)211 9.10 持续归档与归档日志212 第10章 基础备份与时间点恢复214 10.1 基础备份215 10.1.1 pg_start_backup215 10.1.2 pg_stop_backup217 10.2 时间点恢复(PITR)的工作原理217 10.3 时间线与时间线历史文件220 10.3.1 时间线标识220 10.3.2 时间线历史文件221 10.4 时间点恢复与时间线历史文件222 第11章 流复制224 11.1 流复制的启动225 11.2 如何实施流复制227 11.2.1 主从间的通信227 11.2.2 发生故障时的行为229 11.3 管理多个备库229 11.3.1 同步优先级与同步状态229 11.3.2 主库如何管理多个备库230 11.3.3 发生故障时的行为231 11.4 备库的故障检测232

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外