性能相当
mysql中区别性能的是采用哪种索引方式,而不是索引的数据类型。
MySQL的btree索引和hash索引的区别
1. hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,
2. btree(B-Tree)索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,
3. 综上,hash 索引的查询效率要远高于 btree(B-Tree) 索引。
虽然 hash 索引效率高,但是 hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。
(1)hash 索引仅仅能满足=,<=>,IN,IS NULL或者IS NOT NULL查询,不能使用范围查询。
由于 hash 索引比较的是进行 hash 运算之后的 hash 值,所以它只能用于等值的过滤,
不能用于基于范围的过滤,因为经过相应的 hash 算法处理之后的 hash 值的大小关系,
并不能保证和hash运算前完全一样。
(2)hash 索引无法被用来避免数据的排序操作。
由于 hash 索引中存放的是经过 hash 计算之后的 hash 值,
而且hash值的大小关系并不一定和 hash 运算前的键值完全一样,
所以数据库无法利用索引的数据来避免任何排序运算;