如果不是普通索引的话,是不存在回表这一说法的。

哈希索引:

MySQL哈希索引_MySQL

哈希索引是基于哈希表的实现,只有精确匹配索引所有列的查询才有效。大白话就是不能使用范围查找,在MySQL中,只有memory存储引擎才显式支持哈希索引。

哈希索引自身只需要存储对应的hash值,所以索引的结构十分紧凑,这让哈希索引查找的速度非常快。

解决哈希冲突最有效的方法是编写优秀的高效的哈希算法。一般的解决思路是开放地址法,再哈希法,拉链法(哈希桶)。

jdk中关于hashmap哈希冲突的解决方式是:加入扰动函数,让高位参与运算,降低哈希冲突的概率。采用链表的方式带来的弊端是,可能导致链表的长度无限扩大,使得遍历时增加性能开销。

CRC循环冗余校验:在数据存储和数据通讯领域,为了保证数据的正确,就不得不采用检错的手段,在诸多检错手段中,CRC就是最著名的一种。

案例:当需要存储大量的URL,并且根据URL进行搜索查找,如果使用B+树,存储的内容就会很大。

select id from url where url=' '

也可以利用URL使用CRC32做哈希,可以使用以下查询方式:

select ud from url where url=' ' and url_crc=CRC32(' ');

此查询性能较高的原因是使用提及很小的索引来完成查找。