×
分布式数据库TIDB:原理、优化与架构设计

包邮分布式数据库TIDB:原理、优化与架构设计

1星价 ¥82.1 (6.9折)
2星价¥82.1 定价¥119.0
暂无评论
图文详情
  • ISBN:9787111772231
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:394
  • 出版时间:2025-03-01
  • 条形码:9787111772231 ; 978-7-111-77223-1

本书特色

权威性:作者为TiDB数据库原厂系列课程与考试的开发者系统性:包含原理篇、性能优化篇和应用场景架构设计篇三个篇章专业性:详细分布式数据库的运行原理、SQL优化、系统优化和应用场景架构设计可读性:内含大量插图、示例、伪代码,便于阅读理解

内容简介

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

前言

从与TiDB社区技术中心(CTC)的同事们一起开发TiDB 5.x系列课程到现在,已经有3年了。目前TiDB数据库已演进到8.x版本,相关的新课程与认证也即将发布。在这3年中,已经有上千位工程师、DBA(数据库管理员)、架构师和高等院校师生学习过TiDB 5.x、6.x和7.x的相关课程并通过了相关的认证。
在这期间,我们不停地收集学习者的反馈和建议,“是否能够推出几本与课程对应、关于TiDB数据库核心原理、场景架构设计和性能优化的书籍?”是被提到较多的一条建议。于是,从2023年年初我们便开始着手进行本书的策划和编写工作,经过不懈的努力,本书终于可以和大家见面了。
已出版的系统介绍分布式数据库原理、架构和优化的书籍寥寥无几。分布式数据库和传统数据库在原理层面又截然不同,比如,对于传统数据库,能以极少的篇幅介绍完架构就快速切换到实践环节,而对于分布式数据库,如果没有深入理解分布式系统的运行原理,用户的优化和设计工作就几乎无从下手。所以,我们在编写本书的时候,参考了广大用户在学习TiDB 5.x、6.x和7.x官方课程时的反馈意见,并结合多年的数据库教学经验,按照原理为先、深入浅出讲解方法论、归档总结实践案例三步走的方针进行设计,旨在帮助读者以*合理、*易接受的方式来学习分布式数据库这个相对较难的技术。

目录

丛书序
推荐序一
推荐序二
推荐序三
前言
**部分 运行原理
第1章 ?数据库架构概述 003
1.1 集中式数据库的特点 003
1.2 集中式数据库的典型架构 004
1.2.1 单体数据库架构 004
1.2.2 配合缓存机制的数据库架构 005
1.2.3 主从数据库架构 005
1.2.4 Shared-Nothing与Shared-Everything架构 006
1.2.5 交易型数据库+数据仓库 008
1.2.6 基于分表分库中间件的数据库集群架构 008
1.3 分布式数据库的特点 010
第2章 ?计算引擎TiDB Server的架构与原理 015
2.1 TiDB Server的架构 015
2.2 TiDB Server的主要功能 016
2.3 关系型数据与键值的转换 017
2.4 SQL读写相关模块 022
2.5 Online DDL相关模块 027
2.6 GC机制与相关模块 028
2.7 TiDB Server的缓存 030
2.7.1 TiDB Server缓存的组成结构 030
2.7.2 TiDB Server缓存管理 030
第3章 ?数据存储引擎TiKV的架构与原理 031
3.1 TiKV的特征 031
3.2 TiKV的架构和作用 032
3.3 RocksDB 033
3.3.1 RocksDB的作用与特点 033
3.3.2 RocksDB的写入与文件组织 034
3.3.3 RocksDB的查询 037
3.3.4 RocksDB的列族 038
3.4 Raft与Multi Raft 039
3.4.1 Raft—日志复制 041
3.4.2 Raft—leader选举 047
3.5 数据的写入 050
3.6 数据的读取—ReadIndex Read  051
3.7 数据的读取—Follower Read  055
3.8 MVCC 056
3.9 分布式事务 061
3.10 Coprocessor 069
第4章 ?TiDB的“大脑”——PD的架构与原理 073
4.1 PD的架构 073
4.2 PD的主要功能 074
4.3 路由功能 075
4.4 TSO分配 076
4.5 调度 080
4.5.1 为什么要调度 080
4.5.2 信息收集 081
4.5.3 生成调度 082
4.5.4 执行调度 082
第5章 ?列存与MPP计算引擎TiFlash的架构与原理 083
5.1 TiFlash的架构 083
5.2 TiFlash的关键特性 084
5.3 异步复制 085
5.4 一致性读取 086
5.5 智能选择 091
第二部分 性能优化
第6章 ?表与索引的设计优化 095
6.1 TiDB数据库中的两种表结构 095
6.1.1 聚簇索引表结构 095
6.1.2 非聚簇索引表结构 096
6.2 表与键值的映射方式 099
6.2.1 聚簇索引表中键值的映射方式 099
6.2.2 非聚簇索引表中键值的映射方式 100
6.3 TiDB中的索引结构 101
6.4 两种表结构的写入对比 103
6.4.1 非聚簇索引表的写入 103
6.4.2 聚簇索引表的写入 105
6.5 两种表结构的读取对比 107
6.5.1 非聚簇索引表的读取 107
6.5.2 聚簇索引表的读取 108
6.6 分布式数据库的热点问题 109
6.6.1 热点问题的形成原因 110
6.6.2 不同表结构的热点问题 111
6.6.3 热点的监控 113
6.6.4 热点的解决 116
6.7 表与索引的设计优化总结 127
第7章 ?SQL优化 129
7.1 TiDB数据库优化器的工作原理 129
7.1.1 TiDB数据库优化器的工作流程 129
7.1.2 预处理阶段之点查 130
7.1.3 预处理阶段中的构造初始逻辑执行计划 131
7.1.4 逻辑优化 132
7.1.5 物理优化 133
7.2 查看执行计划 136
7.3 数据查询优化之索引优化 138
7.3.1 点查Point_Get & Batch_Point_Get 139
7.3.2 IndexReader(索引读)+ IndexRangeScan(索引范围扫描) 140
7.3.3 IndexLookUp(回表索引读)+ IndexRangeScan(索引范围扫描)+
TableRowIDScan(根据键读取表数据) 141
7.3.4 IndexFullScan(索引全扫描) 144
7.3.5 TableReader(表扫描)+ TableFullScan(全表扫描) 146
7.3.6 IndexMerge(索引合并) 147
7.4 数据查询优化之聚合优化 150
7.4.1 HashAgg算子 150
7.4.2 StreamAgg算子 154
7.5 数据查询优化之表连接优化 157
7.5.1 Hash Join算子 157
7.5.2 Merge Join算子 160
7.5.3 Index Join算子 163
7.6 统计信息管理 166
7.6.1 统计信息的工作原理 167
7.6.2 统计信息的组成 172
7.6.3 统计信息监控 181
7.6.4 收集统计信息 183
7.6.5 统计信息的导入与导出 189
7.7 执行计划管理 190
7.7.1 Optimizer Hints 190
7.7.2 执行计划绑定 193
7.8 SQL优化*佳实践 197
第8章 ?性能监控与诊断 199
8.1 性能监控概述 199
8.2 TiDB数据库的监控体系 199
8.2.1 Prometheus + Grafana + Alertmanager  199
8.2.2 TiDB Dashboard 201
8.3 常见的性能诊断方法 202
8.3.1 定位慢查询
展开全部

作者简介

董菲,PingCAP 首席讲师,常年从事数据库培训、架构设计、开发和维护工作 。曾供职于 Oracle、空中网、微软中国和 ARUZE,是数据库领域的资深专家。多次为人民银行、中国银行、工商银行、农业银行、中国移动、中国联通、铁路总公司、中国邮政、埃森哲和 IBM 等企业提供数据库技术和开发培训。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航