B树和B+树的区别、还有hash索引的区别?
1) B树每个节点都存储了key和data,B+树的data只存储在叶子节点上。
节点不存储data,就可以存储更多的key,使得树变矮,查询操作效率更高,执行的越快。
2) 树的所有叶子节点构成了一个有序列表,可以按照关键码的次序遍历全部记录。
由于数据顺序排列并相连,所以便于区间查找和搜索。而B树需要每一层的递归遍历。
为什么不使用哈希索引:
哈希索引的绝对优势是在没有出现哈希碰撞时查询时间复杂度是O(1),查询速度非常快,但他有很多缺点;
不支持范围查询
不支持索引完成排序