mysql 执行流程

mysql 执行流程

我们可以人为的把mysql 的主要功能分为如下模块.

1.初始化模块

  mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buffer),载入控制表, 内存分配之类的,这个模块执行完之后, 初始化模块执行完之后就把控制器交给

链接管理器

2.执行流程

一个用户连接进来之后 先会跟连接管理模块打交道, 然后连接管理模块会通知线程管理模块分配一条线程进入 用户模块 对这个用户进行验证, 当 用户模块 执行完之后,服务端就可以接受从客户端发来的命令了, 用户发来的命令会传给 命令分发器 ,

  在命令分发器中, 加入是查询语句的话他会先到 查询缓存模块 看看有没有被缓存过得(当然前提是我们把这个查询缓存给打开), 命令分发器 他还会通知日志模块将我们的命令给保存下来,放到 general_log 里面,而且还是没等命令执行完就开始记录,完完整整得到记录下来,

  下面呢,命令分发器 会将命令传给 命令解析器, 通过 命令解析器 的解析将命令发往不同的 模块 如 查询优化器(DML), 表变更模块(DDL), 表维护模块(检查,压缩) ,复制模块,状态模块(状态变量,服务器信息)

  然后他们会根据自己的需要 调用 访问控制模块 访问控制模块会传来一个 表的列表 ,它会检测用户有没有权限对表或列的权限 他执行完之后 会把控制器交给 表管理模块 表管理模块会根据.frm 文件进行一些读取,或者取锁 ,当它执行完之后会调用 存储引擎接口 来实现.

时间: 2024-11-06 02:17:57

mysql 执行流程的相关文章

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

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

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

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

mysql优化之sql执行流程及表结构(schema)对性能的影响

part 1 sql执行流程(如下图所示) 1.客户端发送一条查询到服务器. 2.服务器通过权限检查后,先检查查询缓存,命中则直接返回结果.否则进入3. 3.服务器进行sql解析,预处理,再由优化器根据该sql涉及到的数据表的信息计算,生成执行计划. 4..MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询:5..将结果返回给客户端. 总结:SQL执行的最大瓶颈在于磁盘的IO,即数据的读取:不同SQL的写法,会造成不同的执行计划的执行,而不同的执行计划在IO的上面临完全不一样的数

MySql基础架构以及SQL语句执行流程

01. mysql基础架构 SQL语句是如何执行的 学习一下mysql的基础架构,从一条sql语句是如何执行的来学习. 一般我们写一条查询语句类似下面这样: select user,password from mysql.user; 这样就可以返回一个结果,但却不知这条语句的内部执行流程. 如下是mysql的逻辑架构图: Mysql可以分为Server层和存储引擎层二部分. Server层有连接器/缓存/分析器/优化器/执行器,涵盖了mysql的很多核心功能. 存储引擎层负责数据的存储和读取,支

mysql查询流程

转自:http://www.cnblogs.com/annsshadow/p/5037667.html 前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的

Mysql编码, Mysql编码流程, Mysql编码顺序, Mysql编码原理, Mysql编码修改依据

编码查看方式以及解释说明: 需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为: >show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +-----------------------

基本sql语句--sql执行流程及调优

SQL分类 和大多数关系型数据库一样,mysql也具有以下几种类型的SQL语句: DML语句:主要用于新增,修改,删除和查询数据库的记录,关键字:insert,update,delete和select DCL语句:主要用于控制数据库对象(库,表,字段.用户等对象)的访问,关键字:grant,revoke DDL语句:主要用于定义和修改数据库对象的结构,常用关键字:create,drop,alter 注:DML(DELETE,UPDATE,SELECT)才 是我们关注的重点,而其中DELETE,U

mirantis fuel puppet执行顺序 和 对整个项目代码的执行流程理解

stage执行顺序 stage {'zero': } -> stage {'first': } -> stage {'openstack-custom-repo': } -> stage {'netconfig': } -> stage {'corosync_setup': } -> stage {'openstack-firewall': } -> Stage['main'] 1.class {'begin_deployment': stage => 'zero

【Servlet】JavaWeb应用的执行流程

Tomcat与Servlet简介 Tomcat Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范.因为Tomcat 技术先进.性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了