MySQL索引类型之哈希索引介绍
Time:2021/06/27 11:39:24 Click:
哈希索引(Hash index)基于哈希表实现,只有精确匹配索引的所有列的查询才生效。对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),哈希码是一个比较小的值,所有的列计算出来的哈希码也不一样。哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存指向每个数据行的指针。
在MySQL中,只有Memory引擎支持哈希索引。这也是Memory引擎的默认索引类型,Memory引擎同时也支持B-Tree索引。因为索引只包括哈希值和指针,索引存储结构十分紧凑,这也让哈希索引查找的速度非常快。然而,哈希索引也有它的限制:
1、哈希索引的数据并不是按照索引字的顺序存储的,所以就无法排序。
2、哈希索引不支持匹配查找,因为哈希值是全部内容计算出来的。
3、哈希索引不存储字段的值,所以不能所以所以中的值来避免读取行。
4、哈希索引只支持等值比较查询,包括=,IN(),
5、如果索引的数据不同,那么查询的速度比较快。如果相同的比较对,速度就相应的边慢。