楼主这里的哈希索引应该指的是哈希聚簇,楼主可以参考以下两篇文章,写的比较详细:
http://huangqiangcn.blog.163.com/blog/static/133623944201091010562539/
http://blog.csdn.net/xiaoxu0123/article/details/5452506

解决方案 »

  1.   

    B 树索引是一般建立的索引。默认的。最常用的索引。无论大表小表都适用。
    Oracle 里哈希索引,还没了解。没听过
      

  2.   

    您好。
    请问下面这句话中,“选择性比较低”,是什么意思?
    “对于选择性比较低的索引键,如果创建 Hash 索引,那么将会存在大量记录指针信息存于同一个 Hash 值相关联。这样要定位某一条记录时就会非常麻烦,会浪费多次表数据的访问,而造成整体性能低下。”
      

  3.   

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

  4.   

    哈希支持随机读取操作,但不支持顺序扫描;B-Tree支持顺序扫描!