TiDB 原理与实战
496.41 KB
23 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
文档详细介绍了TiDB的原理与实战,包括其架构、功能模块以及核心技术。TiDB是一种NewSQL数据库,兼容MySQL协议,支持分布式事务和水平扩展。其核心组件TiKV提供了基于raft协议的分布式存储和高容错能力。TiDB的查询优化包括逻辑优化和物理优化,支持Hash Join等连接算法,并行优化查询性能。文档还介绍了TiDB的在线DDL功能,解决了表结构变更时的锁表问题。 | ||
AI总结 | ||
《TiDB 原理与实战》文档内容总结如下:
### 演讲者介绍
- **演讲者**:张理想,现任PingCAP公司TiDB Committer,Go语言爱好者。
- **研究方向**:分布式系统。
- **工作经历**:
- **PingCAP**:2015年加入,主要参与TiDB的Online DDL、SQL优化器、功能改进及性能提升。
- **京东**:2013年末开始从事存储相关工作,包括云存储和弹性块存储项目。
- **联系方式**:微博@紫沐夏_go,Email: lixia@pingcap.com,GitHub: https://github.com/zimulala。
---
### 哈希表匹配
- **机制**:
- 小表(small table)放入内存,建立哈希表。
- 大表(big table)通过Goroutine分批读取,匹配哈希表。
- **未来支持**:Merge Sort Join等常用算法。
---
### Online DDL
- **现状**:锁表(部分支持读操作,但内存消耗高)。
- **TiDB解决方案**:
- 参考Google F1的动态Schema变更论文。
- 支持四种模式:Absent、Delete Only、Write Only、Reorg。
- **设计注意事项**:
- 架构师需谨慎设计表结构。
- DBA操作前需充分准备。
---
### TiDB 执行流程
- **MySQL兼容**:
- 支持MySQL协议,用户迁移成本低。
- 部分函数或功能尚未实现。
- **查询优化**:
- **逻辑优化**:基于关系代数的等价交换进行逻辑变换。
- **物理优化**:优化数据读取、表连接方式、排序等。
- 流程:TP Parse → Logical Plan → Physical Plan → Exec Stat CBO → RBO。
---
### TiKV 特性
- **分布式事务**:
- 2PC(二阶段提交),参考Google Percolator论文。
- MVCC(多版本并发控制)。
- 隔离级别:SI(快照隔离)+ 乐观锁。
- **存储引擎**:RocksDB。
- **扩展与容错**:
- 水平扩容/缩容:Raft协议 + PlacementDriver。
---
### NewSQL 简介
- **发展背景**:
- 早期:RDBMS(如MySQL、PostgreSQL)和NoSQL(如Redis、MongoDB)。
- 现代:NewSQL兼具两者的优点。
- **NewSQL特点**:
- 支持分布式事务。
- 支持高可用性和水平扩展。
- **代表系统**:
- Google Spanner、Google F1、TiDB。
---
### 总结
文档围绕TiDB的核心原理与实践展开,涵盖NewSQL的发展背景、TiDB的执行流程、查询优化、Online DDL实现、TiKV特性等内容,重点介绍了TiDB在分布式系统、并行优化、动态Schema变更等方面的技术实现和优势。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
11 页请下载阅读 -
文档评分