当前位置: 代码迷 >> Oracle开发 >> 数据库有关问题,哈希索引和b树索引,什么情况下,选择哪个索引的有关问题
  详细解决方案

数据库有关问题,哈希索引和b树索引,什么情况下,选择哪个索引的有关问题

热度:67   发布时间:2016-04-24 06:33:04.0
数据库问题,哈希索引和b树索引,什么情况下,选择哪个索引的问题
数据库问题,哈希索引和b树索引,什么情况下,选择哪个索引的问题。
今天面试的时候,面试官问到的一个问题。
哈希索引和b树索引,在什么情况下应该使用什么索引,如果你设计数据库,要怎么选择?
------解决思路----------------------
楼主这里的哈希索引应该指的是哈希聚簇,楼主可以参考以下两篇文章,写的比较详细:
http://huangqiangcn.blog.163.com/blog/static/133623944201091010562539/
和http://blog.csdn.net/xiaoxu0123/article/details/5452506
------解决思路----------------------
键值重复率低的字段比较适合使用B树索引
------解决思路----------------------
B 树索引是一般建立的索引。默认的。最常用的索引。无论大表小表都适用。
Oracle 里哈希索引,还没了解。没听过

------解决思路----------------------
其实,真正从索引原理角度考虑。B-Tree索引,是一般性的索引,适用范围更广。但是B-Tree索引不适合大范围数据扫描。B-Tree索引,至少需要至少两次查询,第一次扫描索引,拿到ROWID后,然后从数据块中去获取数据行。而Hash索引,只需要根据查询的值进行一次Hash函数计算,就可以得到ROWID的位置,也就是说肯定只需要计算一次就能拿到ROWID。因此,Hash所以你更适合=值查找。
  相关解决方案