# 与SQL读写相关的模块

![`smart`](ModulesSupportSQLOperations_aa_002_20220509.png)

-----------------------------------------------------------
至于SQL读写过程，我们将在TiDB SQL执行流程单元中详细介绍。在这里我们简要解释相关模块的作用。

`Executor`模块
- `Compiler`生成的执行计划之后，`Executor`执行该计划。

`DistSQL`模块
- TiDB服务器和Coprocessor之间有一个`DistSQL`模块的抽象层，它封装了低层Coprocessor请求。顶层SQL语句可能包含复杂的操作符，如连接和子查询，涉及多个表，而`DistSQL`仅处理单个表的数据。`DistSQL`请求可以涉及多个Region。

`TiKV Client`模块
- TiKV 主要负责发送读写请求。第一类是 Raw KV 请求，它是一个简单的请求，用于获取单行数据，比如基于主键索引或唯一索引的等价查询。第二类是 Coprocessor 请求，它要求将计算也推送到 TiKV Coprocessor 框架，比如过滤、聚合或列投影等。

`Transaction`模块
- 这个模块主要处理事务，包括两阶段提交、事务悲观锁和乐观锁管理等。

`KV`模块
- 所有与TiKV相关的事务请求都由这个KV模块完成，例如`KV Get`和`Batch Get`。

`PD Client`模块
- 这个模块负责处理与PD相关的请求。
