建议默认使用BTree索引,如果时间太长,可以尝试HAST索引,但限制如下:
不支持between and
只支持 = IN <> 不支持范围查询如between and和like。
无法排序
因为转成Hash值了,所以排不了序。
复合查询时必全字段
因为是全字段组合后进行的HASH运算,所以只能全字段组合后进行HASH匹配。
无法避免全表扫描
由于多个索引字段存在HASH值相同的可能,需要进行二次对比,这时需要全表扫描,所以最好不要多字段用HASH索引。
Hash碰撞时,效率不高
所以数据唯一性不好的字段,不能用。
所以,索引键值最好只用于等值情况,且唯一度高,不会排序和分组,比如身份证号数据。