# Reads Execution
__*Execution of read*__
__*Region Cache*__
__*Metadata information for the table*__
__*information schema*__

![left](./student-guide/diagram/ExecuteandRead01_aa_002_20220512.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 plan. Before you start, you need to do the following 2 things:

1. The metadata information of the table is obtained from the TiDB Server cache (in the information schema).

2. 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 where it is located.

However, in order to prevent frequent access to PD, a Region Cache component is maintained in the TikV-Client module to cache Region information, so we will read Region information from Region Cache first, and if there are no hits, then read it via PD-Client. When out-of-date information is found, the Region Cache is cleaned up and reloaded.