摘自:《高性能Mysql》 1. 哈希索引基於哈希表實現,只有精確的匹配索引所有列的查詢才有效,對於每一行數據,存儲引擎會對所有的索引列計算一個哈希碼,並將哈希碼存儲在索引中,同時在哈希表中保存只想每個數據行指針 mysql中,只有memory引擎顯示支持哈希索引,並且支持非唯一哈希索引。也是mem ...
摘自:《高性能Mysql》
1. 哈希索引基於哈希表實現,只有精確的匹配索引所有列的查詢才有效,對於每一行數據,存儲引擎會對所有的索引列計算一個哈希碼,並將哈希碼存儲在索引中,同時在哈希表中保存只想每個數據行指針
mysql中,只有memory引擎顯示支持哈希索引,並且支持非唯一哈希索引。也是memory預設的索引類型。
註意事項:
(1)哈希索引數據不是按照索引值順序存儲的所以無法用於排序
(2)也不支持部分索引匹配查找
(3)不支持範圍查詢,只支持等值比較查詢包括(=、IN()、<=>)
(4)如果哈希衝突很多(不同的索引列值卻有相同的哈希值),索引維護操作代價很高
2.InnoDB引擎可以“自適應哈希索引”。可以自定義創建哈希索引。但是其實還是在B+Tree進行查找,但是是使用的是哈希值而不是鍵本身進行索引查找。