欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • 数据库内核揭秘(存储引擎的设计与实现)
      • 作者:林金河|责编:赵军
      • 出版社:清华大学
      • ISBN:9787302679363
      • 出版日期:2025/03/01
      • 页数:235
    • 售价:31.6
  • 内容大纲

        本书深入探讨数据库存储引擎内部机制,详细阐述存储引擎在数据管理中的核心作用,包括数据的存储、检索和管理方式。
        本书共分为9章,内容从基础概念到高级技术,逐步深入,旨在为读者提供全面的理解框架。前两章为读者打下坚实的基础,介绍数据库系统的概览以及操作系统和硬件设备的相关知识。接下来的章节按照自底向上的逻辑顺序,深入探讨存储引擎的关键模块。第3章讲解数据在文件系统中的组织和存储方式。第4章聚焦于缓冲池的设计和缓存替换算法。作为存储引擎的核心,索引在本书占据了3章的篇幅(第5~7章),详细介绍哈希表、LSM树和B树家族。第8章讨论数据库系统中的故障恢复问题,重点介绍了ARIES算法及其应用。第9章关注事务的并发控制,包括多种并发控制算法和优化手段,如多版本并发控制(MVCC)。
        本书提供了宝贵的理论知识和实践指导,帮助读者掌握构建高性能、高可靠性数据库系统的关键技术。它不仅适合数据库开发者和系统架构师,也适合对存储引擎感兴趣的技术爱好者。
  • 作者介绍

        林金河,开源技术爱好者,从事分布式数据库的开发工作,深度参与过多个大规模分布式数据库系统的设计和开发。
  • 目录

    第1章  概述
      1.1  数据库与数据库管理系统
      1.2  为什么需要数据库管理系统
      1.3  数据模型
      1.4  模块化
        1.4.1  计算引擎
        1.4.2  存储引擎
    第2章  软件和硬件基础
      2.1  多处理器架构
        2.1.1  对称多处理器架构
        2.1.2  非对称多处理器架构
      2.2  CPU
        2.2.1  高速缓存
        2.2.2  流水线
        2.2.3  SIMD
      2.3  内存管理
        2.3.1  虚拟内存
        2.3.2  页表
        2.3.3  缺页
        2.3.4  TLB
      2.4  存储设备
        2.4.1  机械硬盘
        2.4.2  固态硬盘
      2.5  文件系统接口
        2.5.1  缓冲I/O
        2.5.2  直接I/O和异步I/O
        2.5.3  io_uring
        2.5.4  小结
    第3章  存储结构
      3.1  页式存储
        3.1.1  如何管理文件中的页
        3.1.2  如何管理页中的记录
      3.2  日志式存储
      3.3  行式存储和列式存储
        3.3.1  行式存储
        3.3.2  列式存储
        3.3.3  行列混合存储
      3.4  数据压缩和编码
        3.4.1  通用压缩算法
        3.4.2  游程编码
        3.4.3  位压缩和参考框架
        3.4.4  前缀压缩
        3.4.5  字典编码
        3.4.6  快速静态符号表
    第4章  缓冲池
      4.1  内存映射
        4.1.1  接口和原理
        4.1.2  内存映射与缓冲池
      4.2  缓冲池结构
      4.3  缓存替换算法

        4.3.1  LRU算法
        4.3.2  FIFO算法和Clock算法
        4.3.3  LFU算法
        4.3.4  LRU-K算法
        4.3.5  LRFU算法
        4.3.6  LIRS算法
      4.4  脏页落盘的原子性
        4.4.1  MySQL的双写机制
        4.4.2  PostgreSQL的整页写入机制
      4.5  优化
        4.5.1  多缓冲池优化
        4.5.2  预读取
        4.5.3  缓冲池旁路
        4.5.4  隔离缓存污染
        4.5.5  扫描共享
    第5章  索引结构:哈希表
      5.1  基本原理
      5.2  哈希函数
      5.3  链接法
      5.4  开放寻址法
        5.4.1  线性探测
        5.4.2  二次探测
        5.4.3  双重哈希
        5.4.4  删除操作
        5.4.5  小结
      5.5  Cuckoo Hashing
        5.5.1  查找操作
        5.5.2  删除操作
        5.5.3  插入操作
        5.5.4  优化分析
      5.6  Hopscotch Hashing
        5.6.1  插入操作
        5.6.2  查找操作
        5.6.3  删除操作
        5.6.4  优化分析
      5.7  Robin Hood Hashing
        5.7.1  插入操作
        5.7.2  删除操作
        5.7.3  查找操作
      5.8  扩容
        5.8.1  重新哈希
        5.8.2  线性哈希
      5.9  完美哈希
      5.10  总结
    第6章  索引结构:LSM树
      6.1  基本原理
      6.2  内存表
      6.3  合并
        6.3.1  触发时机
        6.3.2  分层合并

        6.3.3  分级合并
        6.3.4  组合合并算法
      6.4  点查询
        6.4.1  SST
        6.4.2  布隆过滤器
        6.4.3  布谷鸟过滤器
        6.4.4  异或过滤器
        6.4.5  带状过滤器
        6.4.6  总结
      6.5  范围查询
        6.5.1  前缀布隆过滤器
        6.5.2  SuRF
        6.5.3  REMIX
      6.6  键值分离
        6.6.1  如何降低键值分离对查询性能的影响
        6.6.2  如何将键值分离存储
        6.6.3  如何对已过期的值进行垃圾回收
    第7章  索引结构:B树家族
      7.1  B树
        7.1.1  搜索算法
        7.1.2  插入算法
        7.1.3  删除算法
      7.2  B+树
        7.2.1  搜索算法
        7.2.2  插入算法
        7.2.3  删除算法
      7.3  并发控制
        7.3.1  锁分支
        7.3.2  乐观锁分支
        7.3.3  锁分支方案的问题
      7.4  Blink树
        7.4.1  搜索算法
        7.4.2  插入算法
        7.4.3  删除算法
      7.5  OLFIT树
        7.5.1  结点的无锁原子读取
        7.5.2  删除算法
      7.6  Bw树
        7.6.1  整体结构
        7.6.2  Bw树的基本结构
        7.6.3  增量记录
        7.6.4  查询操作
        7.6.5  结点分裂
        7.6.6  结点合并
    第8章  故障恢复
      8.1  故障类型
      8.2  影子分页
      8.3  预写式日志
        8.3.1  重做日志
        8.3.2  回滚日志

        8.3.3  重做-回滚日志
      8.4  物理日志和逻辑日志
        8.4.1  物理日志
        8.4.2  逻辑日志
        8.4.3  物理日志和逻辑日志对比
        8.4.4  物理-逻辑日志
      8.5  刷盘策略
      8.6  检查点
      8.7  ARIES
        8.7.1  日志序列号
        8.7.2  事务提交
        8.7.3  事务回滚
        8.7.4  模糊检查点
        8.7.5  恢复
      8.8  MARS和WBL
        8.8.1  MARS
        8.8.2  WBL
      8.9  总结
    第9章  并发控制
      9.1  事务
        9.1.1  事务的冲突
        9.1.2  事务的异常
        9.1.3  隔离级别
      9.2  并发控制算法
      9.3  多版本并发控制
      9.4  基于锁的并发控制算法
        9.4.1  锁的类型
        9.4.2  基础两阶段锁
        9.4.3  严格两阶段锁和强严格两阶段锁
        9.4.4  多版本两阶段锁
        9.4.5  死锁处理
        9.4.6  锁的粒度
        9.4.7  热点优化
      9.5  基于时间戳顺序的并发控制算法
        9.5.1  基础T/O算法
        9.5.2  托马斯写入规则
      9.6  乐观并发控制算法
        9.6.1  算法原理
        9.6.2  可序列化的充分条件
        9.6.3  串行验证之向后验证
        9.6.4  串行验证之向前验证
        9.6.5  并行验证
      9.7  基于有向序列化图的并发控制算法
        9.7.1  有向序列化图
        9.7.2  序列化快照隔离
        9.7.3  并发控制算法小结
      9.8  多版本记录的存储方式
        9.8.1  追加写存储
        9.8.2  时间穿梭存储
        9.8.3  增量存储

      9.9  多版本记录的过期回收
      9.10  多版本数据的索引管理