# Dml Reads Process Overview
__*DML Reads Process Overview*__

![left](./student-guide/diagram/DMLStatementReadsProcessOverview_aa_002_20220512.png)

------------------------------------------------------------
The process of reading a DML statement can be briefly described as:

1. A query (select) request is received from the client. (Protocol Layer)

2. Asynchronously gets the start_ts of a SQL statement, that is, the TSO at which the SQL statement begins.

3. parse and compiles SQL statements and generates execution plans. (Parse, Compile)

4. Execution starts after querying the table metadata and region location information. (Execute)

5. TiKV receives a TiDB query request, executes it, filters it, and return it to the TiDB server.

6. The TiDB Server collates the received results and return them to the client.

Step 4 can be continued as follows:

1. Get the metadata of the table you want to query.

2. Generate key range information and get information about the regions where each key range is located.

3. Based on the location information of regions, TiDB Server sends a query request to TiKV where the region is located.