# Reads Data

![`smart`](ExecuteandRead01_aa_005_20220512.png)

-----------------------------------------------------------
The main modules for completing the data reading process are Executor, DistSQL, KV, PD Client, and TiKV Client.

First, the Executor module will read data in batches according to the execution plan, and two things need to be done before starting:

1. Get the metadata information of the table from the cache of the TiDB server (in information schema).

2. Get the location of the Region needed to be read, which is also done through the PD Client module, which can help us locate the Region of a certain key and the TiKV server it is located in.

But, in order to prevent frequent access to PD, there is a Region Cache component in the TiKV Client module, which is used to cache Region information, so we will first read the Region information from the Region Cache, if there is no hit, then read it through the PD Client, and if there is expired information, it will clear the Region Cache and reload it.


