文档中心
首页
  • HTML
  • CSS
  • JavaScript
  • Vue
  • 前端工程化
  • Laravel
  • MySql
  • Linux
  • 公众号与小程序
  • 其他
  • vue-element-admin
  • vue-antd-admin
  • VuePress
  • 《JavaScript教程》
  • 《JavaScript高级程序设计》
  • 《ES6 教程》
  • 《Vue》
  • 《React》
  • 《TypeScript 从零实现 axios》
  • 《Git》
  • TypeScript
  • vue-element-admin集成模板
  • 商品进销存管理系统
  • 民主测评管理系统
  • 在线考试系统
  • 股票分析系统
  • 利用vue.js和vue-element-admin开发管理系统
  • PHP开发微信公众号
  • Laravel开发RESTful API
  • uni-app开发微信小程序
技术文摘
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
关于
收藏
  • 分类
  • 标签
  • 归档

Evan Xu

前端界的小学生
首页
  • HTML
  • CSS
  • JavaScript
  • Vue
  • 前端工程化
  • Laravel
  • MySql
  • Linux
  • 公众号与小程序
  • 其他
  • vue-element-admin
  • vue-antd-admin
  • VuePress
  • 《JavaScript教程》
  • 《JavaScript高级程序设计》
  • 《ES6 教程》
  • 《Vue》
  • 《React》
  • 《TypeScript 从零实现 axios》
  • 《Git》
  • TypeScript
  • vue-element-admin集成模板
  • 商品进销存管理系统
  • 民主测评管理系统
  • 在线考试系统
  • 股票分析系统
  • 利用vue.js和vue-element-admin开发管理系统
  • PHP开发微信公众号
  • Laravel开发RESTful API
  • uni-app开发微信小程序
技术文摘
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
关于
收藏
  • 分类
  • 标签
  • 归档
  • PHP

  • Laravel

  • ThinkPHP

  • MySql

    • sql语句的执行流程
      • 一、步骤
        • 1.1 总体流程
        • 1.2 连接器
        • 1.3 分析器
        • 1.4 优化器
        • 1.5 执行器
    • RBAC数据表
  • linux

  • 公众号与小程序

  • 其他

  • 后端
  • MySql
wmhello
2018-11-24
目录

sql语句的执行流程

# sql语句的执行流程

版本:Mysql 5.7,问题:通过普通的sql语句执行的分析,了解MySQL的执行流程。

# 一、步骤

# 1.1 总体流程

sql语句的执行要经过server层和引擎层。server负责接受命令,分析语法,选择索引,调用引擎层接口;引擎层提供各种接口,不同的引擎接口是一样的,是可以互换的。 server层包括连接器、分析器、优化器和执行器。 引擎层包括常见的各类引擎,有InnoDB、MyISAM和Memory等,其中5.5以上默认的是InnoDB,5.5以下的是MyISAM

# 1.2 连接器

管理用户连接到数据库的各种能力。包括客户端建立连接、获取权限、维持和管理连接 连接成功后,用户的权限在这个连接中总是一直存在的。即使管理员这个途中修改了用户的权限,修改完成后,只有再新建的连接才会使用新的权限设置。

# 1.3 分析器

分析器会针对输入的命令先做词法分析,分析该语句的要执行什么操作,主要包括分析关键字,分析表名和字段名。 在词法分析之后,还会进行语法分析,主要分析书写的mysql语句是否有语法错误。错误提示"You have an error in your SQL syntax"就是语法分析的结果

# 1.4 优化器

经过了分析器,MySQL 就知道你要做什么了。接下来就是优化器对具体的执行过程进行调控。 优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一有多表连接的内容里面,选择用哪种方式开始连接。

# 1.5 执行器

MySQL通过分析器知道了该做什么,通过优化器知道了该怎么做,接下来就到了执行器,执行器根据表的格式,调用不同引擎的接口,然后处理各种接口返回的数据。 在具体的执行的时候,首先要判断是否对执行的表有相关的权限,如果有权限就执行,没有权限就提示 执行的时候,如果没有索引,就先取第一行,判断条件是否成立,成立了,把数据取出来,然后再执行下一行,一直执行完毕。

#mysql
入门
RBAC数据表

← 入门 RBAC数据表→

最近更新
01
使用VuePress搭建博客系统(一)
08-08
02
利用FreeSSL.cn申请免费SSL证书
07-23
03
民主测评管理系统
07-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 wmhello |备案号:滇ICP备2023013341号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式