0
点赞
收藏
分享

微信扫一扫

【jvm004】为什么用B+树做索引,而不用hash表做索引?

玩物励志老乐 2022-04-06 阅读 58
mysql

为什么用B+树做索引,而不用hash表做索引?

1 、模糊查找不支持: 哈希表是把索引字段映射成对应的哈希码然后再存放在对应的位置 , 这样的话, 如果我们要进行模糊查找的话, 显然哈希表这种结构是不支持的, 只能遍历这个 表 。 而 B + 树则可以通过最左前缀原则快速找到对应的数据。

2 、范围查找不支持: 如果我们要进行范围查找, 例如查找 ID 为 100 ~ 400 的人, 哈希表同 样不支持, 只能遍历全表。

3 、 哈希冲突问题: 索引字段通过哈希映射成哈希码, 如果很多字段都刚好映射到相同值的 哈希码的话, 那么形成的索引结构将会是一条很长的链表, 这样的话, 查找的时间就会大大 增加。

举报

相关推荐

0 条评论