Mysql工作流程图

工作流程分析

1. 所有的用户连接请求都先发往连接管理器

2. 连接管理器
    (1)一直处于侦听状态
    (2)用于侦听用户请求

3. 线程管理器
    (1)因为每个用户请求都需要开启一个线程来响应
    (2)所以线程管理器通过给用户创建新的线程或完成线程重置的方式给用户一个响应线程

4. 用户模块
    (1)对用户连接请求需要检查用户权限
    (2)用户模块用于验证用户身份和用户请求(是否有访问mysql服务器的权限)
    (3)若用户请求不通过,由用户模块负责退回用户请求
    (4)若用户请求通过,则使得用户连接
 
5. 命令分发模块
    (1)一旦用户具有连接权限,那么用户就可以发一些SQL语句
    (2)命令分发模块负责把不同类型的语句分配到与之对应的解析器上
    |
    |
    |———>6. 缓存模块  
    |                 (1)若用户发的SQL语句是一个查询语句,且缓存中有查询结果的内容
    |                 (2)则命令分发模块与缓存模块交互
    |                 (3)由缓存模块直接把这个结果返回给用户(详见mysql缓存机制)
    |
    |———>7. 日志模块       
                       (1)用户发起一个命令(语句),都会记录在日志中
                       (2)日志模块主要功能是记录用户查询
                       (3)所以命令分发模块也有可能和日志模块进行交互

8. 解析器
    (1)解析查询生成解析数,由解析器判断命令最终属于哪种语句
    (2)交给它下面的底层模块进行分段解析
    |
    |
    |———>8.1 优化器
    |                    如果解析器解析此命令是select语句,需要交给优化器进行优化
    |———>8.2 表定义模块
    |                    如果是update、insert、delete语句,需要交给表定义模块
    |———>8.3 表维护模块
    |                    如果是repair相关的语句,需要交给表维护模块了,表维护模块主要作用是修复表中的某些逻辑错误
    |———>8.4 复制模块
    |                    mysql中的主从服务器同步过程需要复制模块
    |———>8.5 状态报告模块
                         mysql中的状态变量需要状态报告模块来存储每一个执行过程中的状态信息

9. 访问控制模块
     (1)这个命令(语句)想要真正执行,还是要通过访问控制模块来检查权限
     (2)访问控制模块用于检验用户的操作是否具有足够的操作权限(是否能对表进行更新或修改操作等)
             
10. 表管理器
       (1)若有足够的操作权限,则由表管理器完成真正的命令操作
       (2)表管理器负责创建/读取/修改表定义文件
   
11. 存储引擎接口和存储引擎
       (1)表管理器通过存储引擎接口交给存储引擎(核心):MYISAM/INnoDB
       (2)可以把存储引擎比喻成大脑,之前所有的步骤使之做出了所有准备动作,等大脑发号施令就可以实施动作了
       (3)这时才能真正对文件系统中的数据库文件做出修改


参考和辅助理解资料

《原来MySQl就是这样工作的!》

《形象地理解进程和线程》

《关于进程和线程的总结》

Mysql工作流程分析的更多相关文章

  1. 【转】Hostapd工作流程分析

    [转]Hostapd工作流程分析 转自:http://blog.chinaunix.net/uid-30081165-id-5290531.html Hostapd是一个运行在用户态的守护进程,可以通 ...

  2. 第2章 rsync算法原理和工作流程分析

    本文通过示例详细分析rsync算法原理和rsync的工作流程,是对rsync官方技术报告和官方推荐文章的解释. 以下是本文的姊妹篇: 1.rsync(一):基本命令和用法 2.rsync(二):ino ...

  3. [国嵌笔记][030][U-Boot工作流程分析]

    uboot工作流程分析 程序入口 1.打开顶层目录的Makefile,找到目标smdk2440_config的命令中的第三项(smdk2440) 2.进入目录board/samsung/smdk244 ...

  4. rsync算法原理和工作流程分析

    本文通过示例详细分析rsync算法原理和rsync的工作流程,是对rsync官方技术报告和官方推荐文章的解释.本文不会介绍如何使用rsync命令(见rsync基本用法),而是详细解释它如何实现高效的增 ...

  5. nodejs的Express框架源码分析、工作流程分析

    nodejs的Express框架源码分析.工作流程分析 1.Express的编写流程 2.Express关键api的使用及其作用分析 app.use(middleware); connect pack ...

  6. u-boot分析(二)----工作流程分析

    u-boot分析(二) 由于这两天家里有点事,所以耽误了点时间,没有按时更新,今天我首先要跟大家说说我对于u-boot分析的整体的思路,然后呢我以后的博客会按照这个内容更新,希望大家关注. 言归正传, ...

  7. Struts2的工作流程分析

    Struts2的工作流程分析 Posted on 2011-02-22 09:32 概述 本章讲述Struts2的工作原理. 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验, ...

  8. rsync(三)算法原理和工作流程分析

    在开始分析算法原理之前,简单说明下rsync的增量传输功能. 假设待传输文件为A,如果目标路径下没有文件A,则rsync会直接传输文件A,如果目标路径下已存在文件A,则发送端视情况决定是否要传输文件A ...

  9. Kafka工作流程分析

    Kafka工作流程分析 生产过程分析 写入方式 producer采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘(顺序写磁盘 ...

随机推荐

  1. Elasticsearch中的索引管理和搜索常用命令总结

    添加一个index,指定分片是3,副本是1 curl -XPUT "http://10.10.110.125:9200/test_ods" -d' { "settings ...

  2. Kindeditor编辑器上传附件,自动获取文件名显示。

    大部分在线编辑器在上传附件之后都是会以路径的形式显示出来很不友好.类似这样..怎么样显示成这样用户上传的原始文件名呢.就是这样.是不是看着很友好. kindeditor编辑器上传文件是已插件的形式调用 ...

  3. oracle中的序列,可以解决自增各种编号自动增长问题,说一下我的小问题。

    1.生成0001-9999的编码 //在PL/sql中 创建一个序列 Create sequence seq_cdptIncrement by 1 --自增数Start with 1 --开始累加数M ...

  4. ASP Session的功能的缺陷(进程外的Session)

    目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Session有以下缺陷: 进程依赖性:ASP Session状态存于IIS的进程中,也就是ineti ...

  5. 当前安卓App加固到底该如何做到防篡改?

    安卓dalvik虚拟机要求dex文件在内存中以明文形式存在,那么任何加壳方法到头来到了内存还是明文存在,各种dump方法终究是可以获得它的.App究竟应该如何加固才能防止被篡改?   加固和 dump ...

  6. C#写入文件

    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\testDir\test2.txt", t ...

  7. SpringMVC 的映射

    27.1.1 @RequestMapping使用 之前,我们是把@RequestMapping注解放在方法之上,用来给方法绑定一个请求映射.除此以外,@RequestMapping注解还可以放在类的上 ...

  8. django入门-测试-part5

    尊重作者的劳动,转载请注明作者及原文地址 http://www.cnblogs.com/txwsqk/p/6515996.html 完全翻译自官方文档 https://docs.djangoproje ...

  9. [实战] SSH 图形化转发

    [实战] SSH 图形化转发 一.介绍 Unix Like操作系统不是只能进行服务器的架设而已,在美编.排版.制图.多媒体应用上也是有其需要的.这些需求都需要用到图形介面(Graphical User ...

  10. Windows 计划任务之消息提醒

    Windows 计划任务之消息提醒 你肯定也有这种需求.想做一个计划任务,却发现老式消息提醒已经被微软禁止了. 或者就是很单纯的希望给系统弹出一个消息框而并非CMD的echo命令. so...how ...