# 阅读执行

![`smart`](ExecuteandRead01_aa_003_20220512.png)

-----------------------------------------------------------
主要模块用于完成数据读取过程的是Executor、DistSQL、KV、PD Client和TiKV Client。

首先，执行模块将根据执行计划按批次读取数据，在开始之前需要做两件事：

1. 从 TiDB 服务器的缓存（在信息模式中）获取表的元数据信息。

2. 获取需要读取的Region的位置，也可以通过PD Client模块来完成，它可以帮助我们定位某个key所在的Region以及它所在的TiKV服务器。

但是，为了防止频繁访问PD，TiKV客户端模块中有一个Region Cache组件，用于缓存Region信息，因此我们将首先从Region Cache中读取Region信息，如果没有命中，则通过PD客户端读取，如果有过期信息，则会清除Region Cache并重新加载。

