-
内容大纲
本书以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的最佳适用场景
拓展阅读
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...