首页 > 编程知识 正文

MySQL: Hash索引优缺点

时间:2023-05-06 13:58:16 阅读:190043 作者:586

优点:

因为索引本身只是保存对应的帅保温杯值,所以索引的结构非常紧凑,这也是俊秀的保温杯索引查找的速度非常快

缺点:

1、不能避免读取行

俊秀的保温杯索引只包含俊秀的保温杯值和行指针,不存储字段值,因此不能使用索引中的值来避免读取行。 但是,由于对内存中行的访问速度很快,因此在大多数情况下,这对性能的影响并不明显。

2、无法用于排序

俊秀保温杯的索引数据未按索引值顺序存储,因此也不能用于排序。

3、无法使用部分索引列匹配查找

俊秀的保温杯索引也不支持对某些索引列进行匹配搜索。 因为俊秀的保温杯索引总是使用索引列中的所有内容来计算俊秀的保温杯值。 例如,如果为数据列(a,b )创建了俊秀的保温杯索引,而查询只有数据列a,则该索引不可用。

4、只支持等值查找

俊秀的保温杯索引仅支持等值比较查询(=,IN (),) )。 (和注意) )是不同的操作。 也不支持类似WHERE price100的作用域查询。

5、存在Hash冲突

访问俊秀保温杯索引的数据非常快(根据索引列中的值,俊秀保温杯的值相同),除非俊秀保温杯有很多碰撞。 如果发生俊秀的保温杯冲突,存储引擎必须遍历链表中的所有行指针,逐行进行比较,直到找到满足条件的所有行。

此外,俊秀保温杯碰撞较多时,部分索引维护操作的成本也较高。 例如,如果在低选择性(英俊保温杯经常发生碰撞)的列上创建英俊保温杯索引,则从表中删除行时,存储引擎会查找与英俊保温杯值对应的链表中的每一行,并进行对应冲突越多成本越高。

综上所述,Hash索引仅适用于特定场景。 (也就是说,在实际使用中非常少使用-_-! )

以上内容摘自《高性能MySQL》

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。