MySql-一条查询SQL语句的执行

MySql-一条查询SQL语句的执行

  你好! 感谢您花费几分钟的时间阅读本篇博客,本人写的是方便学习与记录,要是有错误的地方请您指出,感谢

1 缓存

  这个的缓存不是指Redis,或者Mybatis的缓存我们常见的缓存,其实MySQL自带了缓存模块,但是我们几乎从来没有用过他,甚至在MySQL8.0直接就给去掉了,所以一定有他的局限性,大家可以查阅一下,但是确实是存在的。如果开启的话,所以一个查询SQL先会查询缓存

2 解析

  我们没有使用缓存的话,就会跳过缓存的模块,那么接下来我们就应该通过MySQL解析器分析sql的语法与词法是否合乎规范,并且会按照Mysql的语法规则,根据SQL语句生成解析树
当我们解析完成之后,并不知道该sql查询的表名或者字段是否存在,所以MySQL种的预处理器会检查解析树表名与列名是否正确,之后得到一个新的解析树。

3 优化

  查询优化器的目的就是根据解析树生成不同的执行计划,然后选择一种最优的执行计划,MySQL 里面使用的是基于开销(cost)的优化器,那种执行计划开销最小,就用哪种。

4 执行存储引擎,返回结果

  得到一个执行计划之后,我们的sql语句是不是终于可以执行了,那么又又有新的问题了,执行计划是谁,在哪执行,谁去执行?
  数据库中的一个表,我们可以把他理解成一个Excel电子表格的形式,所以我们的表在存储数据的同时,还要组织数据的存储结构,这个结构就是我们的存储引擎决定的。
存储引擎我们要注意,是表的类型而非数据库的类型,一个数据库当中可以有多种表的存储引擎
在这里插入图片描述 如图,在设计表种我们可以修改表的存储引擎


然后我们通过执行存储引擎 ,获取数据,返回到客户端
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值