# mysql 从逻辑架构学习MySQL

我们常用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,将找到的多行记录放到结果集中,最后返回给客户端。

推荐阅读更多精彩内容

  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕少君阅读 8,028评论 0 43
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 1,715评论 0 7
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,056评论 0 30
  • MYSQL应该是最流行的WEB后端数据库。大量应用于PHP,Ruby,Python,Java 等Web语言开发项目...
    smooth00阅读 1,173评论 0 16
  • 2019年的一天,元旦,就这样过完了 内心毫无波动,只是感觉时间有些极速 还没有准备好今年的计划今天就过完了 还没...
    醉酒的和尚阅读 79评论 0 1