主题
面试速答(先看这里)
**一句话结论:**但是,如果有一种特殊情况,如男女比例是95:5,那么,这时候,如果我用"女'作为性别的查询条件的话,还是可以走索引,并且有很大的性能提升的,原因就是因为他可以过滤掉大部分数据。
60秒标准回答:
假如我的表中有一个性别字段,他的区分度肯定是不高的,只有男和女两种。一般情况下,如果表中数据量很大的话,用这个字段查询会导致没办法过滤掉很多数据,就可能没办法发挥索引的效果
但是,如果有一种特殊情况,如男女比例是95:5,那么,这时候,如果我用"女'作为性别的查询条件的话,还是可以走索引,并且有很大的性能提升的,原因就是因为他可以过滤掉大部分数据。走索引可以大大提升效率
这种一般在任务表中比较多,比如任务表中有状态,两种情况:INIT和SUCCESS,大多数情况下,任务都是SUCCESS的,只有一少部分是INIT,这时候就可以给这个字段加索引。这样当我们扫描任务表执行任务的时候,还是可以大大提升查询效率的
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**假如我的表中有一个性别字段,他的区分度肯定是不高的,只有男和女两种。
- **要点2:**这种一般在任务表中比较多,比如任务表中有状态,两种情况:INIT和SUCCESS,大多数情况下,任务都是SUCCESS的,只有一少部分是INIT,这时候就可以给这个字段加索引。
**记忆锚点:**SUCCESS → INIT → 就可能没办法发挥索引
关键取舍:
- 但是,如果有一种特殊情况,如男女比例是95:5,那么,这时候,如果我用"女'作为性别的查询条件的话,还是可以走索引,并且有很大的性能提升的,原因就是因为他可以过滤掉大部分数据。
加分表达:
- 一般情况下,如果表中数据量很大的话,用这个字段查询会导致没办法过滤掉很多数据,就可能没办法发挥索引的效果。
追问准备:
- 围绕「SUCCESS」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「INIT」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「就可能没办法发挥索引」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
不一定的
假如我的表中有一个性别字段,他的区分度肯定是不高的,只有男和女两种。一般情况下,如果表中数据量很大的话,用这个字段查询会导致没办法过滤掉很多数据,就可能没办法发挥索引的效果。
但是,如果有一种特殊情况,如男女比例是95:5,那么,这时候,如果我用"女'作为性别的查询条件的话,还是可以走索引,并且有很大的性能提升的,原因就是因为他可以过滤掉大部分数据。走索引可以大大提升效率。
这种一般在任务表中比较多,比如任务表中有状态,两种情况:INIT和SUCCESS,大多数情况下,任务都是SUCCESS的,只有一少部分是INIT,这时候就可以给这个字段加索引。这样当我们扫描任务表执行任务的时候,还是可以大大提升查询效率的。