# Execute and Read


![left](./student-guide/diagram/05-Read-execution-01-01.png)
------------------------------------------------------------
Let's take a look at the SQL reading process in conjunction with the following diagram. The main ones that complete this process are: Executor, DistSQL, KV, PD Client, and TiKV Client thread modules.

First, the Executor module reads the data in batches according to the execution schedule. There are two things you need to do before you start:
  - Get the metadata information of the table from the TiDB Server cache (in the information schema).
  - Obtain the location of the region that needs to be read. This is also done through the PD Client module. It can help us locate the region of a key and the TiKV it is located in.

However, in order to prevent frequent access to the PD, maintain a Region Cache component in the TikV-Client module to cache the region information, so we will read the region information from the region cache first, and if there is no hit, then read it through the PD-Client. If an out-of-date information is found, the region cache is cleaned up and reloaded.