在什么情况下使用B-tree索引和哈希索引

在什么情况下可以使用B-tree索引

1、全值匹配的查询

order_sn='987654321000';

2、匹配最左前缀的查询

order_sn order_date 联合索引,第一列可以利用索引

3、匹配列前缀查询

order_sn like '9876%'

匹配某一列的开头部分

4、匹配范围值的查询

order_sn>'9876532119900' and order_sn<'9999999999999999'

5、精确匹配左前列并范围匹配另外一列

6、只访问索引的查询

btree索引使用限制

1、not in 和<>操作无法使用索引。

2、如果查询中有某个列的范围查询,则其右边所有列都无法使用索引

 

hash索引的限制

1、hash索引必须进行二次查找

2、hash索引无法用于排序

3、hash索引不支持部分索引查找也不支持范围查找

4、hash索引中hash码的计算可能存在hash冲突

 

posted @ 2017-12-21 16:01  mayer326  阅读(1221)  评论(0编辑  收藏  举报