# `PARMS::` TiDB サーバーの主な機能

+ クライアント接続の処理
+ SQL文を解析してコンパイルします
+ リレーショナルデータをキー・バリューペアにマッピングします
+ SQL文を実行します
+ オンラインDDL実行
+ ガベージコレクション
+ メモリーに小さなテーブルをキャッシュします

![`right`](TiDBServerArchitecture_aa_002_20220509.png)

------------------------------------------------------------------------------
前の単元で、TiDBサーバーがSQLレイヤーであり、MySQLプロトコルの接続エンドポイントを外部に公開し、クライアント接続の受付、解析、最適化、SQL文の実行を担当することを学びました。また、分散実行計画の生成も担当します。TiDBサーバー自体はデータを格納しません。SQLを解析し、実際のデータ読み取りリクエストを下位のストレージノードTiKV（またはTiFlash）に転送します。

1. `Protocol Layer`、`Parser`、`Compiler`、`Executor`というモジュールは、主にSQL文の解析とコンパイル（最適化）に責任があります。これらのモジュールで処理された後、SQL文の実行計画が生成されます。
2. `Executor` と `DistSQL` モジュールは、主にSQL実行計画をバッチで実行することに責任があります。
3. モジュール`Transaction`および`KV`は、トランザクション関連の書き込みに責任があります。
4. モジュール`PD Client`および`TiKV Client`は、`Placement Driver`および`TiKV`とのやり取りに責任があります。
5. モジュール`Schema Load`、`Worker`、`Start Job`は、オンライン`DDL`を実行するために協力しています。

MemBufferは、結果セット、メタデータ、ログイン認証情報などをキャッシュするために使用されます。

TiDBサーバーのメモリーにテーブル全体のデータをロードすることで、v6.0の新機能、cached tableは、頻繁にアクセスされており、まれに変更されるホットスポットの小さなテーブルに適しています。つまり、TiKVインスタンスからテーブルデータを取得することを避け、読み取りパフォーマンスを向上させることができます。
