1、Hash索引应进行二次搜索。
使用哈希索引两次搜索,第一次找到相应的行,第二次读取数据,但频繁访问的行通常被存储在存储器中,对数据库性能的影响不大。
2、hash索引不能用于外部排名。
hash索引保存了hash代码而不是键,因此不能用于外部排名。
3、hash索引不支持部分索引搜索或范围搜索。
只能使用等值查询,不能进行范围和模糊查询。
4、hash索引中的hash码计算可能存在hash冲突。
hash冲突发生时,存储引擎必须经历整个链表中的所有指针,逐行比较,直到找到所有符合条件的行为。如果hash冲突较多,一些索引的维护成本很高,所以hash索引不适合选择性差的列(重复值较多)。姓名、性别、身份证(适当)
说到InnoDB的适应hash索引。在InnoDB注意到某些索引值被频繁使用的情况下,在内存中基于B-Tree索引创建hash索引,B-tree索引也具有hash索引的优点。这是一种完全自动的内部行为,用户无法控制或配置,但如有必要,可以完全关闭该功能。
以上就是mysql中哈希索引的使用限制,希望对大家有所帮助。更多mysql学习指路:
推荐操作系统:windows7系统、mysql5.8、DELL G3电脑