美文网首页数据蛙数据分析每周作业
【MySQL学习】No.1 执行SQL查询语句

【MySQL学习】No.1 执行SQL查询语句

作者: LL_路上 | 来源:发表于2019-01-27 19:36 被阅读0次

    输入一条语句,返回一个结果,那这条语句在 MySQL 在SQL中如何执行呢?

    MySQL 的基本架构示意图(copy):


    image.png

    第一步,连接器

    你会先连接到这个数据库上,这时候接待你的就是连接器。

    mysql -h$ip -P$port -u$user -p
    
    

    连接完成后,如果你没有后续的动作,这个连接就处于空闲状态,你可以在 show processlist 命令中看到它。

    第二步,查询缓存

    连接建立完成后,你就可以执行 select 语句了。MySQL 拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。之前执行过的语句及其结果可能会以 key-value 对的形式,被直接缓存在内存中。

    第三步,分析器

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

    第四步,优化器

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

    第五步,执行器

    MySQL 通过分析器知道了你要做什么,通过优化器知道了该怎么做,于是就进入了执行器阶段,开始执行语句。
    开始执行的时候,要先判断一下你对这个表 T 有没有执行查询的权限,如果没有,就会返回没有权限的错误。如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。

    相关文章

      网友评论

        本文标题:【MySQL学习】No.1 执行SQL查询语句

        本文链接:https://www.haomeiwen.com/subject/pdjnjqtx.html