面试题答案
一键面试B - Tree索引
- 特点:
- 以平衡树结构存储数据,节点按顺序排列,便于范围查找。
- 支持全键值、键值范围和最左前缀匹配查找。
- 插入、删除操作相对高效,能保持树的平衡。
- 适用场景:
- 范围查询,如
WHERE column BETWEEN value1 AND value2
。 - 排序操作,因为索引本身有序,可避免额外排序。
- 多列联合索引,满足最左前缀原则时能高效查询。
- 范围查询,如
哈希索引
- 特点:
- 使用哈希表存储数据,通过哈希函数计算索引值,查找速度极快,时间复杂度为O(1)。
- 仅支持精确匹配查找,不支持范围查找和排序。
- 哈希冲突可能会影响性能。
- 适用场景:
- 等值查询,如
WHERE column = value
,尤其是在大数据量且查询条件为精确匹配时。
- 等值查询,如
选择索引类型优化查询性能的方法
- 分析查询模式:
- 若主要是等值查询,哈希索引可能更合适;若有大量范围查询或排序需求,B - Tree索引更好。
- 考虑数据量:
- 数据量较小,B - Tree索引通常能满足需求;大数据量下,哈希索引在等值查询上优势明显,但要注意哈希冲突。
- 联合索引:
- 当多个列经常一起作为查询条件时,创建联合B - Tree索引,遵循最左前缀原则。
- 避免过度索引:
- 索引虽能提升查询性能,但会增加插入、更新、删除操作的开销,需权衡。