MySQL的btree索引和hash索引的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL的btree索引和hash索引的区别相关的知识,希望对你有一定的参考价值。

参考技术A 对于单个字段:
hash是精确定位(起作用于field=xxx这种情形),而btree是序列定位(可以对field>=xxxxx这种情形生效),如果同样是在field=xxx这种情形下,hash的效率更高。

对于多字段联合索引:
例如(field1+field2)联合索引下,查询WHERE field1=xxxx AND field2=xxxx时,两种索引都会生效(hash效率更高),但如果查询WHERE field1=xxxx时,只有btree索引会生效,而hash索引此时不起作用!本回答被提问者和网友采纳

观后感-MySQL索引类型 btree索引和hash索引的区别

http://www.cnblogs.com/osfipin/p/4943229.html、http://www.2cto.com/database/201411/351106.html-文章地址

首先,建立索引会在磁盘上建立索引文件,索引的数据都存储在索引文件中,所以进行索引检索的时候,会产生磁盘I/O消耗  

btree 检索速度没有hash快。

但是现在hash用的非常少,原因:

1:hash只能用=、in、<=>来进行查询,不能进行范围查询。

2:hash不能与其他的索引同时组合使用。

3:hash索引所为的字段,其值若有大量重复的,会导致查询效率等比降低。

4:hash是无序的,既没有物理排序,也没有逻辑排序。

以上是关于MySQL的btree索引和hash索引的区别的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的btree索引和hash索引的区别

mysql Hash索引和BTree索引区别

MySQL的btree索引和hash索引的区别

MySQL的btree索引和hash索引的区别

MySQL的btree索引和hash索引的区别

观后感-MySQL索引类型 btree索引和hash索引的区别