# クエリ文処理の概要

![`smart`](DMLStatementReadsProcessOverview_aa_007_20220512.png)

----------------------------------------------------------------
クエリー処理は以下のように簡単に説明できます：

1. TiDBサーバーは、クライアントプログラムからのクエリ要求を受け取ります。（プロトコルレイヤー）

2. TiDBサーバーは、SQL文が開始されたときのTSOであるSQL文の開始時のstart_tsを非同期で取得します。

3. TiDBサーバーは、SQL文を解析してコンパイルし、実行計画を生成します。

4. TiDBサーバーはテーブルのメタデータとRegionの位置情報をチェックし、その後文を実行します。

5. TiKVサーバーはTiDBサーバーからのクエリリクエストを受け取り、コマンドを実行し、データをフィルタリングしてから結果をTiDBサーバーに返します。

6. TiDBサーバーは受け取った結果を整理し、クライアントプログラムに返します。

第4ステップは、さらに拡張することができます：

1. TiDBサーバーは、クエリするテーブルのメタデータを取得します。

2. TiDBサーバーはキー範囲の情報を生成し、各キー範囲のRegion情報を取得します。

3. TiDBサーバーは、リージョンの位置情報に基づいてリージョンが配置されているTiKVサーバーに並列にクエリ要求を送信します。




