# Dml Statement Reads Process Overview


![left](./student-guide/diagram/05-Reading-process-01-01.png)

------------------------------------------------------------
The process of reading a DML statement can be briefly described as:
  - Received a query (select) request from the client. (Protocol Layer)
  - Asynchronously get the start_ts of the SQL statement, that is, the TSO at the start of the SQL statement.
  - Parse and compile SQL statements and generate execution plans. (Parse, Compile)
  - Execution starts after querying the table metadata and location information of the region. (Execute)
  - TiKV receives a query request from TiDB, executes it, and filters it and return it to the TiDB server.
  - TiDB Server collates the received results and return them to the client.

Step 4 of these can continue to expand to:
  - Get the metadata of the table you want to query.
  - Generate key range information and get the region information for each key range.
  - TiDB Server sends a query request to the TiKV in the region based on the location information of the region.

This diagram is a simplified process that will be expanded in a later section.