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

Posted mayer326

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在什么情况下使用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冲突

 

以上是关于在什么情况下使用B-tree索引和哈希索引的主要内容,如果未能解决你的问题,请参考以下文章

什么是自适应哈希索引

PostgreSQL 哈希索引

数据库----问题1:数据库索引底层是怎样实现的,哪些情况下索引会失效?

mysql-索引

mysql-索引

mysql-索引