offerMe--数据库必备“SQL查询之路”
Posted 猿大佬的格字衫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了offerMe--数据库必备“SQL查询之路”相关的知识,希望对你有一定的参考价值。
1.序
这个是数据库相对来说底层的东西,所以面试官一般很喜欢问,我记得字节,阿里等大厂的面试官都会问这个,所以今天我们来彻底的学会它。
2.简略版本
我记得面试官在问到数据库时:“用过数据库吧,奥,用过就行,那用过select语句吗?就比如 select * from student where studentId = 1;这个语句在数据库底层是怎么执行的,可以讲讲吗?”
这个时候不要谎,来到我们秀的时间了。如上图,我建议大家脑子里都有一个这样的图,当我们有这样一个图的时候我们就可以很简单直接的把答案说出来。
1. 连接器:通过连接器判断用户名和密码是否正确,若失败,直接返回用户被拒的错误;否则获取用户权限信息;
2.查询缓存:若查询缓存开启则通过sql语句查询缓存中是否有key为当前查询的sql,若存在,直接返回value,结束查询;
3.分析器:若缓存无结果返回,那么通过分析器,对sql语句进行解析,若sql语句有误,返回语法错误信息,结束查询;
4.优化器:sql语句正常经过分析器后,在优化器确认最终的执行方案,确定是用表中的索引以及表的连接顺序;
5.执行器:当到达执行器的时候判断用户对sql中的表有没有权限操作,若没有返回权限不足的错误信息,否则,调用存储引擎提供的数据查询接口查询数据,若缓存开启,则更新缓存,最后将结果返回。
完美答案。
3.详细版本
当然了,我们不能简单的为了应付面试而这样学习,我们肯定要系统的学习一下吧,于是借鉴下面两张图的讲解我们来学习一下。
上面是数据库构成的一个整体,那我们来详细的了解一下它的每一块。
详细内容请点击“阅读全文”进行学习(效果更佳)
详细内容请点击“阅读全文”进行学习(效果更佳)
详细内容请点击“阅读全文”进行学习(效果更佳)
以上是关于offerMe--数据库必备“SQL查询之路”的主要内容,如果未能解决你的问题,请参考以下文章