mysql服务器处理客户端请求

1.连接管理
客户端进程可以采用tcp/ip或者命名管道或者共享内存等方式与服务器进程建立连接。服务器进程会创建一个线程专门处理与这个客户端的交互。当客户端与该服务器断开之后,不会立即撤销线程,只会把他缓存起来等待下一个客户端请求连接的时候,将其分配给该客户端。
2.解析与优化
1.查询缓存。
2.语法解析:如果查询缓存没有命中相应的语句,那么服务器将会对该文本语句进行分析,判断是否正确,然后才从文本中将要查询的表,个中查询条件都提取出来放到mysql服务器内部使用的一些数据结构上。
3.查询优化:我们自己写的sql语句执行起来效率可能会比较低下。mysql的优化程序会对我们写的sql语句进行优化。
3.存储引擎
mysql服务器把数据的存储和提取操作都封装到了一个名为存储引擎的模块中。
请求的处理过程分为server层和存储引擎层。连接管理,查询缓存,语法解析,查询优化这些都是server层的功能。存储真实数据的功能才是存储引擎的功能。各种不同的存储引擎为server层提供统一的调用接口,其中包含几十个不同用途的底层函数。
所以在server层完成了查询优化之后,只需要按照生成的执行计划调用底层存储引擎提供的接口获取到数据之后返回给客户端就行。

Guess you like

Origin blog.csdn.net/nice_good_boy/article/details/120794408