RDBMS处理数据请求的大概流程简介
RDBMS的流程
RDBMS在处理用户请求时的整个流程如下:
1、当用户请求数据查询等操作时,首先要与数据库服务器建立连接关系。因此首选和连接管理器建立连接。
2、连接管理器在将请求交给线程管理器,mysql是一个多线程系统,因此,用户的一个sql请求会使用一个线程进行响应。当请求处理完成后,线程管理器会销毁掉该线程或则将其转变成空闲线程来处理后续请求
3、线程管理器在将控制权限交给用户模块,用来验证指定用户账号和密码是否正确;如果不正确则将返回客户端
4、验证通过后,客户端就可以发送sql请求,该请求会经命令分发模块来处理,首先会到缓存模块中去查找是否有该请求的结果。如果有则返回给客户端。如果没有则交给解析器来处理。当然,如果有需要记录的话,会将请求记录到日志模块中。
5、解析器接受到请求后,会将该请求生成解析数,然后提交给相应的模块来处理。
其中优化器是用来处理select语句的,用来确定最优的查询方式,开销最小。
表修改模块:用来创建、删除、重命名、移除、更新表及插入之类的操作
表维护模块:用来检查表、修改表、备份表、恢复表、优化表(碎片整理)及解析操作
复制模块:跟复制操作有关的模块
状态模块:用来记录该请求处理后的状态
6、经过上述处理后,在将控制权交给访问控制模块。这个模块主要是用来控制该用户是否具有查询、删除、复制及其他相关权限的。
7、通过了访问控制权限后,会将该请求交给表管理器来进行处理。表管理器会负责创建、读取和修改表结构定义文件;还可以来维护表描述符高速缓存以及管理表锁的功能。
8、最终该请求会达到储存引擎到指定的磁盘或文件系统上面加载相应的数据,并最终返回给客户端。
其中表管理器分为数据查询管理器和数据存储管理器
查询管理器又包括:
DML解释器
DDL解释器
查询执行引擎
储存管理器包括:
权限及完整性管理器
事务管理器
文件管理器
缓冲区管理器
本文出自 “linux学习之路” 博客,请务必保留此出处http://xslwahaha.blog.51cto.com/4738972/1575499
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。