基础题目,重点考察对索引的理解。一般来说,面试官想要开启索引有关的话题的面试的时候,就会提出这个问题。在回答这个问题的时候一定要抓住机会,尽可能在回答中留下足够多的引导点,引诱面试官从这些引导点进一步追问。
因此在回答这个问题的时候,要注意回答的广度。
这是一个典型的陷阱式问法。因为在常规思维里面,我们都是认为索引是好的。那么有些面试官就不按套路出牌,会反问你索引的缺陷。因此索引是不是越多越好,本质上就是考察索引的开销和缺陷。
这是一个理论与实践相结合的问题。大部分人在面试的时候犯的错就是仅仅从理论上分析了如何选择索引的列,而忽略了提及实践的案例。并且,通过引入不同的案例,还能进一步引导面试官。
此外,你还要注意一点,有些面试官会现场给你表结构定义、核心查询,而后要求你设计索引,这种题目你一样可以参考本问题的答案思路来设计。
最左匹配原则也算是一个面试的热点。最左匹配原则的回答要点就在于讲清楚它的具体匹配原则,最好是能够结合具体的案例。因此这个问题又可以结合如何选择索引列里面的相关内容来回答。
如果你平时没有想过,那么面试官问出来就很容易卡住。实际上这个问题并不难,但是可能的情况比较多,因此你在回答的时候,不一定能够把面试官想要你回答的所有的点都回答出来。但是并不要紧,你只需要答出三五个点就差不多了,足以证明你对这个问题有比较深刻的理解。
而后在平时注意收集一些索引失效的案例就可以了,尽量在回答的时候用上,就非常完美。
基础题。基本上你回答一下索引的优点,再讲一个使用索引前后对比的案例就可以了。这个问题有两个很好的引导点,一个是慢查询排查和优化,另外一个就是谈借助唯一索引来实现幂等。一旦引导成功,那么你都可以水十分钟的面试,并且利用提前准备好的方案刷出亮点。
这也是一个高频面试题目。回答这个问题的误区是无脑背 B+ 树的特点,而没有针对索引这种场景进行分析。并且,如果要想刷出亮点,就不能将话题局限在 B+ 树上,而是要进一步考虑其它的数据结构,并且在面试高端岗位的时候能给出非常具体的例子。
不太常见的问题。这个问题的出题思路是,往常讨论索引都是讨论 B+ 树索引,因此面试官故意问这个问题,看看你对其它类型的索引有没有了解。
这个题目是早几年突然流行起来的,基础题。
回答这个问题一方面要把聚簇索引和非聚簇索引的基本含义回答出来,另外一方面则是要将回表和覆盖索引答出来。
基础题。在回答这个问题的时候,最好加上一个自己使用覆盖索引的案例。
基础题,校招和初中级岗位中比较常见。
不过在实践中前缀索引用得不太多,所以如果你没有接触过就可能答不出来。但是要想回答好这个问题,赢得竞争优势,就要深入讨论前缀索引的前缀,究竟应该有多长。
基础题。索引下推这个名词很容易让你摸不着头脑,因此如果你要是没接触过,就难以从字面上理解这是一个什么东西。
基础题。在回答的时候除了要把联合索引的基本定义讲清楚,还要提到创建联合索引的注意事项。
简答题,校招和初级岗位面试中常见。
中等难度,应届生和社招都可能遇到。主要考察对B+树和B树的理解以及索引设计的实际应用。回答时要避免简单罗列B+树特点,而要从数据库实际应用场景出发,阐述B+树的优势。重点在于解释B+树在范围查询和磁盘IO方面的性能。可以通过引出哈希索引、聚簇索引等话题,引导面试官进一步探讨。