BTREE索引和HASH索引的區別

從本質上理解,BTREE是一種有序樹,而hash是無序的。因此最關鍵的區別在於:spa

1,BTREE能夠用來作範圍查詢,好比大於,小於,而HASH索引僅在"=","IN"和"<=>"查詢時效率較高;orm

2,HASH索引不能避免排序操做;(有order by的時候用btree)排序

3, HASH索引不能用來作部分索引;(有組合索引的時候用btree)索引

4, 若是被索引列有不少相同值的時候,hash衝突會比較多,效率可能不如btree; 可是若是都是不一樣值的時候(惟一),btree由於要進行樹遍歷查詢,而hash能夠O(1)查詢,則hash的效率要高不少;ci

相關文章
相關標籤/搜索