mysql哈希索引

摘自:《高性能Mysql》   

1. 哈希索引基于哈希表实现,只有精确的匹配索引所有列的查询才有效,对于每一行数据,存储引擎会对所有的索引列计算一个哈希码,并将哈希码存储在索引中,同时在哈希表中保存只想每个数据行指针

   mysql中,只有memory引擎显示支持哈希索引,并且支持非唯一哈希索引。也是memory默认的索引类型。

  注意事项:

   (1)哈希索引数据不是按照索引值顺序存储的所以无法用于排序

   (2)也不支持部分索引匹配查找

    (3)不支持范围查询,只支持等值比较查询包括(=、IN()、<=>)

    (4)如果哈希冲突很多(不同的索引列值却有相同的哈希值),索引维护操作代价很高

2.InnoDB引擎可以“自适应哈希索引”。可以自定义创建哈希索引。但是其实还是在B+Tree进行查找,但是是使用的是哈希值而不是键本身进行索引查找。

 

posted @ 2017-08-02 18:29  嗨~好久不见~  阅读(377)  评论(0编辑  收藏  举报