mysql服务器处理客户端请求

这篇博客介绍了MySQL服务器如何管理客户端连接,包括使用TCP/IP、命名管道或共享内存建立连接,并在客户端断开后缓存线程。接着,详细阐述了查询缓存、语法解析和查询优化的步骤。服务器层的功能如连接管理、查询优化等与存储引擎层的数据存储和提取相分离,存储引擎提供了统一的调用接口。在查询优化后,通过存储引擎接口获取数据并返回给客户端。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值