面试官: 那你们有没有对于查询做一些优化呢?
我: 我们在数据库中创建了一些索引(我现在非常后悔我当时说了这句话)。
面试官: 你能说说为什么B+树相对于B树在查询上会更加优胜吗?
我:(这道题我背过答案!)B+树磁盘读写代价更低,;B+树查询效率更加稳定;对于范围查找来说,B+树只需遍历叶子节点链表即可,B树却需要重复地中序遍历…
面试官: 除了上面这个范围查询的,你还能说出其他的一些区别吗?
我:???
聚簇索引、覆盖索引
面试官: 刚刚我们聊到B+ Tree,那你知道B+Tree的叶子节点都可以存哪些东西吗?
面试官: 聚簇索引和非聚簇索引,在查询数据的时候有区别吗?
面试官: 刚刚你提到主键索引查询只会查一次,而非主键索引需要回表查询多次。是所有情况都是这样的吗?非主键索引一定会查询多次吗?
联合索引、最左前缀匹配
面试官: 你们在创建索引的时候都会考虑哪些因素呢?你们有用过联合索引吗?
面试官: 那你们在创建联合索引的时候,需要做联合索引多个字段之间顺序你们是如何选择的呢?
索引下推、查询优化
面试官: 你知道在MySQL 5.6中,对索引做了哪些优化吗?
面试官: 你们创建的那么多索引,到底有没有生效,或者说你们的SQL语句有没有使用索引查询你们有统计过吗?
我: 这个还没有统计过,除非遇到慢SQL的时候我们才会去排查;
面试官: 那排查的时候,有什么手段可以知道有没有走索引查询呢?
面试官: 那什么情况下会发生明明创建了索引,但是执行的时候并没有通过索引呢?
我:(依稀记得和优化器有关,但是这个问题并没有回答好)
面试官: 哦,索引有关的知识我们暂时就问这么多吧。你们线上数据的事务隔离级别是什么呀?
总结&感悟
通过这次面试,发现像阿里这种大厂对于底层知识还是比较看重的,这次面试关于索引的知识,自己大概能回答70%,但是自信答对的只占一半, 我以前以为关于索引最多也就问一下Hash和B+有什么区别,没想到最后都能问到查询优化器上面。看来自己索引有关的知识了解的还是不够多。
为了让熟练掌握MySQL,苦学了近2个月,并整理了这些MySQL从基础到架构到优化的学习笔记,可以说很全面,独家一份,有需要的朋友在点这里领取!
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

总结
我们总是喜欢瞻仰大厂的大神们,但实际上大神也不过凡人,与菜鸟程序员相比,也就多花了几分心思,如果你再不努力,差距也只会越来越大。
面试题多多少少对于你接下来所要做的事肯定有点帮助,但我更希望你能透过面试题去总结自己的不足,以提高自己核心技术竞争力。每一次面试经历都是对你技术的扫盲,面试后的复盘总结效果是极好的!
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!**