如果你平时没有想过,那么面试官问出来就很容易卡住。实际上这个问题并不难,但是可能的情况比较多,因此你在回答的时候,不一定能够把面试官想要你回答的所有的点都回答出来。但是并不要紧,你只需要答出三五个点就差不多了,足以证明你对这个问题有比较深刻的理解。
而后在平时注意收集一些索引失效的案例就可以了,尽量在回答的时候用上,就非常完美。
数据库不用索引的原因有很多:
面试官也可能换一些问法,比如说:
另外有一些面试官喜欢直接列出表结构定义,然后写出查询,问你为什么这个查询会不会走索引,走哪个索引,你记得问一句数据量大小,因为这个也会对索引有影响。而后你记得补充,最终还是要以数据库 EXPLAIN 为准,你自己这种理论分析是不靠谱的。
当然,要是面试官问到慢查询排查,又或者 SQL 查询优化的时候,你也可以用索引失效作为其中的一个点。