RDBMS处理数据请求的大概流程简介

RDBMS的流程

RDBMS在处理用户请求时的整个流程如下:

1、当用户请求数据查询等操作时,首先要与数据库服务器建立连接关系。因此首选和连接管理器建立连接。

2、连接管理器在将请求交给线程管理器,mysql是一个多线程系统,因此,用户的一个sql请求会使用一个线程进行响应。当请求处理完成后,线程管理器会销毁掉该线程或则将其转变成空闲线程来处理后续请求

3、线程管理器在将控制权限交给用户模块,用来验证指定用户账号和密码是否正确;如果不正确则将返回客户端

4、验证通过后,客户端就可以发送sql请求,该请求会经命令分发模块来处理,首先会到缓存模块中去查找是否有该请求的结果。如果有则返回给客户端。如果没有则交给解析器来处理。当然,如果有需要记录的话,会将请求记录到日志模块中。

5、解析器接受到请求后,会将该请求生成解析数,然后提交给相应的模块来处理。

其中优化器是用来处理select语句的,用来确定最优的查询方式,开销最小。

表修改模块:用来创建、删除、重命名、移除、更新表及插入之类的操作

表维护模块:用来检查表、修改表、备份表、恢复表、优化表(碎片整理)及解析操作

复制模块:跟复制操作有关的模块

状态模块:用来记录该请求处理后的状态

6、经过上述处理后,在将控制权交给访问控制模块。这个模块主要是用来控制该用户是否具有查询、删除、复制及其他相关权限的。

7、通过了访问控制权限后,会将该请求交给表管理器来进行处理。表管理器会负责创建、读取和修改表结构定义文件;还可以来维护表描述符高速缓存以及管理表锁的功能。

8、最终该请求会达到储存引擎到指定的磁盘或文件系统上面加载相应的数据,并最终返回给客户端。



其中表管理器分为数据查询管理器和数据存储管理器

查询管理器又包括:

DML解释器

DDL解释器

查询执行引擎

储存管理器包括:

权限及完整性管理器

事务管理器

文件管理器

缓冲区管理器

时间: 2025-01-04 19:13:41

RDBMS处理数据请求的大概流程简介的相关文章

一种Android数据请求框架

大部分Android应用一般都涉及到跟server的交互,除非是某些单机应用.既然要跟server打交道,向server请求数据差点儿是必做的事情,或许每家的APP都有一套自己的详细实现逻辑.但我们还是能够抽象出来一个通用的数据请求框架. 先上图: 我们来详细分析一下.首先竖直虚线左側是Androidclient.右側是server.后台数据库. 左側图中,3个灰色的模块就是Android中的MVC(具体介绍请參考之前的一篇文字<Android中的MVC模式简单介绍>),当中Activity或

图解 Spring:HTTP 请求的处理流程与机制【4】

4. HTTP 请求在 Spring 框架中的处理流程 在穿越了 Web 容器和 Web 应用之后,HTTP 请求将被投送到 Spring 框架,我们继续剖析后续流程.Web 应用与 Spring MVC 的衔接是通过配置文件 mvc-servlet.xml 完成的,我们通过这份配置文件定义构成 Spring MVC 的各种核心组件和初始化配置,其中包括:控制器 Controller.视图解析器 ViewResolver.视图 View 等等.不同组件分别承担不同的功能,在介绍 Spring 框

注册的一个大概流程

注意:其实注册就是一个数据的插入过程 注册流程如下---------------------------------------------- 1.接受参数 2.参数的合法性检验 3.检验成功后,唯一性匹配 (注册的一个用户是否被别人注册过,如果说已经被注册过了,那么我们跳转到登录页面,提示该用户已被注册) 4.不存在,执行注册 5.注册成功,跳转:注册失败,返回到注册页面重新注册 (如果说合法了,那么我们继续往下走,去根据用户名查询这个记录是否存在,查询就会涉及到JDBC) 代码演示如下: 1

图解 Spring:HTTP 请求的处理流程与机制【3】

3. HTTP 请求在 Web 应用中的处理流程 在穿越了 Web 容器之后,HTTP 请求将被投送到 Web 应用,我们继续以 Tomcat 为例剖析后续流程.Web 容器与 Web 应用的衔接是通过配置文件 web.xml 完成的.web.xml 是遵循 Java Servlet 标准规范的配置文件,我们通过这份配置文件定义构成 Web 应用的各种核心组件和初始化配置,其中包括:过滤器 Filter.监听器 Listener.伺服器 Servlet 等等.不同组件分别承担不同的功能,在介绍

Python之Django框架执行流程简介

我为大家简单阐述一下Django框架执行的大概流程. Django框架的执行流程    1.浏览器发送请求    2.服务器接收请求并将请求转发给Django框架    3.框架处理请求,如果是请求数据就去找model,如果请求时模版就去找template,然后将模板或数据读取并返回给服务器一个相应.    4.服务器再将相应转发给客户端 原文地址:https://www.cnblogs.com/chao666/p/12093912.html

【转】Spark架构与作业执行流程简介

原文链接 http://www.cnblogs.com/shenh062326/p/3658543.html Spark架构与作业执行流程简介 Local模式 运行Spark最简单的方法是通过Local模式(即伪分布式模式). 运行命令为:./bin/run-example org.apache.spark.examples.SparkPi local 基于standalone的Spark架构与作业执行流程 Standalone模式下,集群启动时包括Master与Worker,其中Master负

gitlab工作流程简介

gitlab工作流程简介 新建项目流程 创建/导入项目 可以选择导入github.bitbucket项目,也可以新建空白项目,还可以从SVN导入项目 建议选择private等级 初始化项目 1.本地克隆项目 2.增加develop本地分支 3.推送develop分支至服务器 4.在gitlab中保护develop分支 5.邀请其他开发人员加入,角色Developer 开发流程 fork项目,fork后会生成一个和原项目一样的新项目 克隆至本地仓库并添加上游分支(仓库-项目设置-远程仓库) git

Storm启动流程简介

storm启动流程          storm是一个流行的开源的,分布式实时处理框架,关于storm的基本介绍可以参加这篇官方文档.大致的拓扑结构如图所示:        其中Nimbus是一个后台管理进程,运行在master node上.Supervisor也是后台进程,运行在work node上.依据上图,Nimbus和Supervisor不直接通信,通过zookeeper进行通信.在Master Node上,可以通过storm nimbus命令来启动nimbus进程,同时通过storm

Bridge的数据在内核处理流程

转:http://blog.sina.com.cn/s/blog_67cc0c8f0101oh33.html 转载一篇Bridge的数据在内核处理流程,文章写的不错啊! (2013-07-05 16:08:48) 转载▼   分类: linux学习文档 作者:林海枫 本文地址: http://blog.csdn.net/linyt/archive/2010/01/14/5191512.aspx 注:本文由作者所拥用,欢迎转载,但请全文转载并注明作者,请勿用于 任何商途. 本文分析的kernel版