# `TiDB` Server at First Glance

__*zz-BGL*__

+ `TiDB` server is `MySQL` compatible
+ `TiDB` server is stateless
![`smart`](TiDBServerConnectionCharacteristics_aa_002_20220616.png)

-------------------------------------------------------------------------------------------
`TiDB` server is compatible with the `MySQL 5.7` communication protocol, common features and syntax of `MySQL`. To migrate your applications to `TiDB`, you do not need to change a single line of code in many cases.

However, there are also some `MySQL` features that are not yet supported in `TiDB` such as stored procedures, custom functions, and triggers, as well as the `MySQL` replication protocol.

The `TiDB` server is a stateless horizontally scalable `SQL` layer that exposes the connection endpoint of the `MySQL` protocol to the clients. The `TiDB` server receives `SQL` requests, performs `SQL` parsing and optimization, and ultimately generates a distributed execution plan. It does not store table data for databases.

You may also connect to TiDB server via some middleware or load balancer, such as SQLProxy, MaxScale, ShardingSphere, F5 (hardware), etc.