注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络数据库数据库理论原理、优化与架构设计:分布式数据库TiDB

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

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

定 价:¥119.00

作 者: 董菲 包光磊 王岩广 黄偲韡
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111772231 出版时间: 2025-03-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

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

作者简介

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

图书目录

丛书序
推荐序一
推荐序二
推荐序三
前言
第一部分 运行原理
第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 定位慢查询

本目录推荐