美文网首页
# mysql 从逻辑架构学习MySQL

# mysql 从逻辑架构学习MySQL

作者: 老图书馆二楼 | 来源:发表于2019-05-11 17:42 被阅读0次

    我们常用MySQL的查询 select  * from table where id =10,但是只了解表象。内部是如何运行的呢,需要理解MySQL的基础架构。

    MySQL逻辑架构图

    分为Service层和存储引擎层,Service层做逻辑判断,存储引擎层放入或者取出数据。

    下面讲解:select * from T where id = 10 执行流程

    1、客户端连接mysq服务器

        mysql -h -p -u -p ,会进行用户登录验证,用户权限验证

    2、查询缓存(不一定有该流程)

        是对查询结果的缓存,之前执行过的SQL查询结果的Key-value值。不推荐使用,因为表结构或者数据发生改变时都会失效。

    3、分析器

        分析这条sql语句,语法的正确性,判断语句类型(查询还是更新),识别表名,列名,执行的关键字。例如:select 执行查找的关键字,T为表名,id是列名。

    4、优化器

        选择这表sql语句的执行方式,例如选择索引,或者连接查询时先执哪张表的连接查询。

    5、执行器

        分析器决定了做什么,优化器决定了怎么做,轮到执行器执行sql语句了。

        首先,判断用户对这张表的执行权限,然后根据表的引擎定义调用该引擎的接口去T表做查询,没有建索引的表会一行行查询Id字段是否为10,将找到的多行记录放到结果集中,最后返回给客户端。

    相关文章

      网友评论

          本文标题:# mysql 从逻辑架构学习MySQL

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