为什么用B+树做索引,而不用hash表做索引?
1 、模糊查找不支持: 哈希表是把索引字段映射成对应的哈希码然后再存放在对应的位置 , 这样的话, 如果我们要进行模糊查找的话, 显然哈希表这种结构是不支持的, 只能遍历这个 表 。 而 B + 树则可以通过最左前缀原则快速找到对应的数据。
2 、范围查找不支持: 如果我们要进行范围查找, 例如查找 ID 为 100 ~ 400 的人, 哈希表同 样不支持, 只能遍历全表。
3 、 哈希冲突问题: 索引字段通过哈希映射成哈希码, 如果很多字段都刚好映射到相同值的 哈希码的话, 那么形成的索引结构将会是一条很长的链表, 这样的话, 查找的时间就会大大 增加。