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

    • 分布式数据库TiDB--原理优化与架构设计/计算机企业核心技术丛书
      • 作者:编者:董菲//包光磊//王岩广//黄偲韡|责编:梁伟//章承林
      • 出版社:机械工业
      • ISBN:9787111772231
      • 出版日期:2025/03/01
      • 页数:392
    • 售价:47.6
  • 内容大纲

        本书以TiDB数据库为基础介绍分布式数据库的运行原理、性能优化和应用场景架构设计。首先,剖析分布式数据库的运行原理与架构;然后,阐述分布式数据库TiDB在表与索引的设计优化、SQL优化、系统级优化方面的方法论,通过融入多个有代表性的案例,帮助读者将方法论对应到生产实践中;最后,梳理场景选型和架构设计过程中读者应该掌握的主要知识点,并对一些分布式数据库的优势场景进行了详细介绍。
        本书适合希望了解分布式数据库原理,学习TiDB数据库的开发工程师、数据库管理员和架构师阅读,也可以作为高等学校教师或学生学习分布式数据库的参考教材。
  • 作者介绍

  • 目录

    丛书序
    推荐序一
    推荐序二
    推荐序三
    前言
    第一部分  运行原理
      第1章  数据库架构概述
        1.1  集中式数据库的特点
        1.2  集中式数据库的典型架构
          1.2.1  单体数据库架构
          1.2.2  配合缓存机制的数据库架构
          1.2.3  主从数据库架构
          1.2.4  Shared-Nothing与Shared-Everything架构
          1.2.5  交易型数据库+数据仓库
          1.2.6  基于分表分库中间件的数据库集群架构
        1.3  分布式数据库的特点
      第2章  计算引擎TiDB Server的架构与原理
        2.1  TiDB Server的架构
        2.2  TiDB Server的主要功能
        2.3  关系型数据与键值的转换
        2.4  SQL读写相关模块
        2.5  Online DDL相关模块
        2.6  GC机制与相关模块
        2.7  TiDB Server的缓存
          2.7.1  TiDB Server缓存的组成结构
          2.7.2  TiDB Server缓存管理
      第3章  数据存储引擎TiKV的架构与原理
        3.1  TiKV的特征
        3.2  TiKV的架构和作用
        3.3  RocksDB
          3.3.1  RocksDB的作用与特点
          3.3.2  RocksDB的写入与文件组织
          3.3.3  RocksDB的查询
          3.3.4  RocksDB的列族
        3.4  Raft与Multi Raft
          3.4.1  Raft—日志复制
          3.4.2  Raft—leader选举
        3.5  数据的写入
        3.6  数据的读取—ReadIndex Read
        3.7  数据的读取—Follower Read
        3.8  MVCC
        3.9  分布式事务
        3.10  Coprocessor
      第4章  TiDB的“大脑”——PD的架构与原理
        4.1  PD的架构
        4.2  PD的主要功能
        4.3  路由功能
        4.4  TSO分配
        4.5  调度
          4.5.1  为什么要调度

          4.5.2  信息收集
          4.5.3  生成调度
          4.5.4  执行调度
      第5章  列存与MPP计算引擎TiFlash的架构与原理
        5.1  TiFlash的架构
        5.2  TiFlash的关键特性
        5.3  异步复制
        5.4  一致性读取
        5.5  智能选择
    第二部分  性能优化
      第6章  表与索引的设计优化
        6.1  TiDB数据库中的两种表结构
          6.1.1  聚簇索引表结构
          6.1.2  非聚簇索引表结构
        6.2  表与键值的映射方式
          6.2.1  聚簇索引表中键值的映射方式
          6.2.2  非聚簇索引表中键值的映射方式
        6.3  TiDB中的索引结构
        6.4  两种表结构的写入对比
          6.4.1  非聚簇索引表的写入
          6.4.2  聚簇索引表的写入
        6.5  两种表结构的读取对比
          6.5.1  非聚簇索引表的读取
          6.5.2  聚簇索引表的读取
        6.6  分布式数据库的热点问题
          6.6.1  热点问题的形成原因
          6.6.2  不同表结构的热点问题
          6.6.3  热点的监控
          6.6.4  热点的解决
        6.7  表与索引的设计优化总结
      第7章  SQL优化
        7.1  TiDB数据库优化器的工作原理
          7.1.1  TiDB数据库优化器的工作流程
          7.1.2  预处理阶段之点查
          7.1.3  预处理阶段中的构造初始逻辑执行计划
          7.1.4  逻辑优化
          7.1.5  物理优化
        7.2  查看执行计划
        7.3  数据查询优化之索引优化
          7.3.1  点查Point_Get & Batch_Point_Get
          7.3.2  IndexReader(索引读)+ IndexRangeScan(索引范围扫描)
          7.3.3  IndexLookUp(回表索引读)+ IndexRangeScan(索引范围扫描)
      TableRowIDScan(根据键读取表数据)
          7.3.4  IndexFullScan(索引全扫描)
          7.3.5  TableReader(表扫描)+ TableFullScan(全表扫描)
          7.3.6  IndexMerge(索引合并)
        7.4  数据查询优化之聚合优化
          7.4.1  HashAgg算子
          7.4.2  StreamAgg算子
        7.5  数据查询优化之表连接优化

          7.5.1  Hash Join算子
          7.5.2  Merge Join算子
          7.5.3  Index Join算子
        7.6  统计信息管理
          7.6.1  统计信息的工作原理
          7.6.2  统计信息的组成
          7.6.3  统计信息监控
          7.6.4  收集统计信息
          7.6.5  统计信息的导入与导出
        7.7  执行计划管理
          7.7.1  Optimizer Hints
          7.7.2  执行计划绑定
        7.8  SQL优化最佳实践
      第8章  性能监控与诊断
        8.1  性能监控概述
        8.2  TiDB数据库的监控体系
          8.2.1  Prometheus + Grafana + Alertmanager
          8.2.2  TiDB Dashboard
        8.3  常见的性能诊断方法
          8.3.1  定位慢查询
          8.3.2  定位有问题的SQL
          8.3.3  定位TiDB Server或TiKV上最耗时的SQL
          8.3.4  定位热点问题
          8.3.5  锁与事务的诊断
          8.3.6  如何诊断整体读写性能问题
          8.3.7  如何诊断问题出现在哪个组件
          8.3.8  写入性能的诊断方法
          8.3.9  大量查询超时的诊断方法
          8.3.10  PD调度慢的诊断方法
          8.3.11  PD频繁调度的诊断方法
      第9章  系统变量与配置参数的优化
        9.1  硬件与操作系统的配置优化
          9.1.1  CPU配置
          9.1.2  内存配置
          9.1.3  NUMA绑定
          9.1.4  IO配置
          9.1.5  网络配置
          9.1.6  操作系统配置
          9.1.7  TiDB数据库部署检测
          9.1.8  TiDB数据库的推荐硬件配置
          9.1.9  TiDB数据库的混合部署
        9.2  TiDB数据库的系统变量优化
          9.2.1  并发控制
          9.2.2  批处理
          9.2.3  Backoff
          9.2.4  执行计划缓存
        9.3  TiDB Server的配置参数优化
          9.3.1  资源分配
          9.3.2  并行处理
        9.4  TiKV集群的配置参数优化

          9.4.1  TiKV写入配置参数的优化
          9.4.2  TiKV读取配置参数的优化
          9.4.3  RocksDB相关配置参数的优化
        9.5  PD的配置参数优化
          9.5.1  TiKV消费速度控制
          9.5.2  存储空间阈值配置参数
          9.5.3  leader-schedule-limit / region-schedule-limit
          9.5.4  replica-schedule-limit
          9.5.5  hot-region-schedule-limit
          9.5.6  merge-schedule-limit
    第三部分  应用场景架构设计
      第10章  高可用架构设计
        10.1  分布式数据库的高可用概述
        10.2  TiDB数据库的高可用能力
          10.2.1  数据的高可用性与一致性
          10.2.2  自动故障转移能力
        10.3  TiDB数据库常用的高可用架构
          10.3.1  同城三中心架构
          10.3.2  同城两中心架构
          10.3.3  同中心架构
          10.3.4  两地三中心架构
      第11章  异步复制架构设计
        11.1  TiDB数据库的异步复制
        11.2  基于TiDB Binlog的异步复制架构
          11.2.1  原理
          11.2.2  Pump集群
          11.2.3  Drainer
        11.3  基于TiCDC的异步复制架构
          11.3.1  原理
          11.3.2  Changefeed与Task
          11.3.3  适用场景
        11.4  如何保证主从一致性读取和校验
      第12章  HTAP场景架构设计
        12.1  HTAP场景概述
        12.2  TiDB数据库的HTAP场景架构
        12.3  MPP架构
          12.3.1  MPP架构的原理
          12.3.2  MPP架构的相关算子
      第13章  Online DDL
        13.1  Online DDL概述
        13.2  Online DDL状态
        13.3  从Absent到Delete only
        13.4  从Delete only到Write only
        13.5  从Write only到Write Reorganization
        13.6  从Write Reorganization到Public
        13.7  如果没有Delete only状态
        13.8  如果没有Write only状态
        13.9  Online DDL真的不影响事务吗
        13.10  事务不报错的解决方案
      第14章  数据库整合与资源管控

        14.1  数据库整合场景概述
        14.2  传统多租户数据库架构
        14.3  TiDB数据库的资源管控
        14.4  TiDB数据库的差异化高可用等级
        14.5  TiDB数据库的冷热分离实现
        14.6  存算一体和存算分离架构在数据库整合中的差异
      第15章  TiDB Serverless
        15.1  数据库负载变化案例
        15.2  数据量差异案例
        15.3  TiDB Serverless的架构
        15.4  TiDB Serverless的最佳适用场景
      拓展阅读