zoukankan      html  css  js  c++  java
  • mysql 一条SQL查询语句执行过程-

    下面给出的是 MySQL 的基本架构示意图,从中你可以清楚地看到 SQL 语句在 MySQL 的各个功能模块中的执行过程。

     Server 层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能。

    存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持 InnoDB、MyISAM、Memory 等多个存储引擎。

    连接器:mysql -h$ip -P$port -u$user -p    连接器就要开始认证你的身份,这个时候用的就是你输入的用户名和密码。

    连接完成后,如果你没有后续的动作,这个连接就处于空闲状态,你可以在 show processlist 命令中看到它。其中的 Command 列显示为“Sleep”的这一行,就表示现在系统里面有一个空闲连接。客户端如果太长时间没动静,连接器就会自动将它断开。这个时间是由参数 wait_timeout 控制的,默认值是 8 小时。

    分析器:如果没有命中查询缓存,就要开始真正执行语句了。首先,MySQL 需要知道你要做什么,因此需要对 SQL 语句做解析。分析器先会做“词法分析”。你输入的是由多个字符串和空格组成的一条 SQL 语句,MySQL 需要识别出里面的字符串分别是什么,代表什么。

    优化器:经过了分析器,MySQL 就知道你要做什么了。在开始执行之前,还要先经过优化器的处理。优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。

    执行器:MySQL 通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。

  • 相关阅读:
    django实例(1)
    django笔记补充
    django笔记
    Docker自学纪实(六)搭建docker私有仓库
    Docker自学纪实(四)搭建LNMP部署wordpress
    Docker自学纪实(三)Docker容器数据持久化
    Docker自学纪实(二)Docker基本操作
    Docker自学纪实(一)Docker介绍
    CentOS 7.4 基于LNMP搭建wordpress
    CentOS7安装配置VSFTP
  • 原文地址:https://www.cnblogs.com/vzhangxk/p/14704781.html
Copyright © 2011-2022 走看看