Mysql的BTREE和HASH索引

建議默認使用BTree索引,若是時間太長,能夠嘗試HAST索引,但限制以下:排序

不支持between and

只支持 = IN <> 不支持範圍查詢如between and和like。索引

沒法排序

由於轉成Hash值了,因此排不了序。效率

複合查詢時必全字段

由於是全字段組合後進行的HASH運算,因此只能全字段組合後進行HASH匹配。數據

沒法避免全表掃描

因爲多個索引字段存在HASH值相同的可能,須要進行二次對比,這時須要全表掃描,因此最好不要多字段用HASH索引。查詢

Hash碰撞時,效率不高

因此數據惟一性很差的字段,不能用。時間

因此,索引鍵值最好只用於等值狀況,且惟一度高,不會排序和分組,好比身份證號數據。

相關文章
相關標籤/搜索