MariaDB的体系结构和执行流程

1、连接发往连接管理器;

2、连接管理器调用线程管理器,复制生成一个连接线程,响应用户请求;

3、由用户模块完成用户的授权和检查;(除非断开,否则回话会处于循环状态)

4、如果用户发送命令,则会到达命令派发器;

5、如果是查询请求,则发往查询请求,看缓存是否能命中,如果能命中,则将结果返回,并且记录日志;

6、如果缓存没有命中,则语句会发往分析器,由分析器完成语法分析、词法分析等,然后可以转换为存储引擎可以执行的语句;

7、优化器根据状态报告模块的报告,生成最有的访问路径,本次优化的结果也会报告给状态报告模块记录结果;

8、如果是修改语句,则由表修改模块执行;

9、如果是表维护语句,则由表维护模块运行;

10、复制模块实现跨实例的复制;

11、访问控制模块检查用户是否有访问权限;

12、如有权限,则交给表管理器,然后把用户请求转换为存储引擎可以执行的语句;

13、由特定的存储引擎加载文件和执行;(所以存储引擎是表级别的)

时间: 2024-10-27 08:12:05

MariaDB的体系结构和执行流程的相关文章

Struts2体系结构与基本流程

一.Struts2基本流程 大致上,Struts2框架由三部分组成:核心控制器FilterDispatcher.业务控制器和用户实现的业务逻辑组件.在这三部分里,Struts2框架提供了核心控制器, 而用户需要实现业务控制器和业务逻辑组件. 1.核心控制器(FilterDispatcher) FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个Filter运行在web框架中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会自 动过滤用户请求.如果用户请求

JavaScript 引擎 V8 执行流程概述

本文首发于 vivo互联网技术 微信公众号? 链接:https://mp.weixin.qq.com/s/t__Jqzg1rbTlsCHXKMwh6A 作者:赖勇高 本文主要讲解的是V8的技术,是V8的入门篇,主要目的是了解V8的内部机制,希望对前端,快应用,浏览器,以及nodejs同学有些帮助.这里不涉及到如何编写优秀的前端,只是对JS内部引擎技术的讲解. 一.V8来源 V8的名字来源于汽车的"V型8缸发动机"(V8发动机).V8发动机主要是美国发展起来,因为马力十足而广为人知.V8

python学习之内部执行流程,内部执行流程,编码(一)

python的执行流程: 加载内存--->词法分析--->语法分析--->编译--->转换字节码---->转换成机器码---->供给CPU调度 python的编码: 1. ASCII    2的256次表示. 2. UNICODE  最好16位表示2字节 3. UTF-8 能就8位表示就用8位表示,节省资源. python的注释: 字符 '#': 只注释一行 字符"  '''  ":注释多行 python的教程参数: 用 sys模块 的argv参数,

(一)熟悉执行流程——基于ThinkPHP3.2的内容管理框架OneThink学习

ThinkPHP作为国内具有代表性的PHP框架,经过多年的发展,受到越来越多公司与开发者的青睐.我也在忙里偷闲中抽出部分时间,来学习这个优秀的框架.在开始学习这个框架时,最好通过实例来学习,更容易结合实际的生产情况,促进学习的效果:这里我就选择由ThinkPHP团队开发的基于ThinkPHP3.2的内容管理框架OneThink来学习,从了解它的执行流程→熟悉流程中各个细节→了解模版标签→自己实际去使用标签→再了解它的实际执行过程……通过这样一个流程来熟悉如何基于ThinkPHP开发出一套CMS系

使用Caffe进行手写数字识别执行流程解析

之前在 http://blog.csdn.net/fengbingchun/article/details/50987185 中仿照Caffe中的examples实现对手写数字进行识别,这里详细介绍下其执行流程并精简了实现代码,使用Caffe对MNIST数据集进行train的文章可以参考  http://blog.csdn.net/fengbingchun/article/details/68065338 : 1.   先注册所有层,执行layer_factory.hpp中类LayerRegis

ASP.NET MVC4 执行流程

MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteConfig.RegisterRoutes(RouteTable.Routes); 来注册路由规则. 2)RouteConfig.RegisterRoutes()方法里,给出的默认规则为 {controller}/{action}/{id} . a. 在有特别需要的时候,到这里来修改规则. b. 未指

捣蛋phpwind过滤器执行流程

从上一篇我们就大概就知道过滤器的定义和怎样去配置,这一节来说说执行流程 public function run($handlerAdapter = null) { $handlerAdapter !== null && $this->handlerAdapter = $handlerAdapter; $module = $this->getModules(); $handlerPath = $module['controller-path'] . '.' . ucfirst($

步步深入:MySQL架构总览->查询执行流程->SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage Engin

docker exec的具体执行流程

首先,做一个docker exec的请求: docker exec -it 5504f937f7bb sh 对应的docker -d(启动的docker daemon)的输出为: INFO[0211] POST /v1.20/containers/5504f937f7bb/exec      INFO[0211] POST /v1.20/exec/fc9c11ae6ac4827ea507e885c888bdb37c8f7b906347b9272adf8d580a6417df/start  INF