# TiDB 体系架构

![center](./student-guide/diagram/01-TiDB-Architecture-01-01.png)
-------------------------------------------------------------
- 通过之前在 TiDB Administration-Fundamental 课程中的学习，我们已经了解了 TiDB 数据库的三大关键组件分别是 PD 集群、TiDB Server 和 TiKV。
  
- 其中，PD 集群是整个 TiDB 数据库的控制中枢，它负责产生全局 TSO 时间戳，调度 region 在 TiKV 节点中的分布、收集 TiKV 节点的健康和分布状况，另外，它还产生全局的事务 ID 和唯一 ID。

- TiDB Server 集群上是不存储落地数据的，但是接收到客户端传来的 SQL，对 SQL 语句进行解析和编译，最终产生执行计划就完全由它来负责了。最后，TiDB Server 负责执行这些执行计划，到 TiKV 存储引擎中去存取数据，并且将结果集进行整理，返回给客户端。最后，关于 DDL 操作和老版本数据的回收（GC）也是 TiDB Server 来完成的。

- 数据主要以 key-value 形式存储在 TiKV 集群中，TiKV 集群主要负责数据的持久化，MVCC（多版本并发控制）、Coprocessor（将算子下推到 TiKV 节点）、事务和其自身副本的高可用和强一致性功能（采用 multi raft 机制实现），我将在 TiKV 课程中进行详细的介绍。

- 这里，我们还有一个组件，那就是列式存储引擎 TiFlash，它主要通过扩展的 raft 共识算法完成了与 TiKV 的数据同步，实现了负载均衡、强一致读取，TiFlash 支持实时更新。这样对于 OLTP 场景实现了分析查询业务隔离，对于 OLAP 场景较大幅度提升查询效率。

- 下面，我们在本模块分别介绍 TiDB、TiKV 和 PD 的主要功能、实现原理和特点，在后面的 《MODULE 3 TiDB 数据库 HTAP 技术》中我们为大家介绍 TiFlash 的实现原理和功能。