7.MySQL中哈希索引和B+树索引的区别【面试题】

面试回答:

在 MySQL 中,哈希索引和 B+ 树索引是两种底层实现完全不同的索引结构,哈希索引一般用于精确的等值查找,B+索引则多用于除了精确的等值查找外的其他查找,在大多数情况下,我们选择使用的是B+树索引。他们的区别有:

  • 由于哈希表是无序的,所以哈希索引不支持排序
  • 哈希索引不支持范围查找
  • 还行索引不支持模糊查询以及多列索引的最左前缀匹配
  • 哈希表中会存在哈希冲突,哈希索引在性能方面是不稳定的,而B+树索引的性能是相对稳定的,每次查询都是从根节点到叶子结点

以下从 7 个核心维度对比两者的区别,并结合实际场景说明选择逻辑:

一、底层数据结构与查找原理

这是两者最根本的差异,直接决定了查询的 “效率逻辑”。

对比项 哈希索引(Hash Index) B+ 树索引(B+ Tree Index)
底层结构 哈希表(键值对结构:哈希值 → 行数据地址 平衡多路查找树(分层结构:根节点 → 非叶子节点 → 叶子节点)
查找原理 1. 对查询的 “索引键” 计算哈希值(如 hash(id)=0x3F);
2. 通过哈希值定位到哈希表的 “桶”;
3. 若有哈希冲突(不同键同哈希值),遍历桶内链表找到目标行地址。
1. 从根节点开始,根据索引键大小对比,选择下一层子节点;
2. 逐层向下,最终在叶子节点找到目标数据(InnoDB 主键索引直接存行数据,普
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值