基于InnoDB存储引擎的哈希索引描述,帮助以后再合适的场景下选择正确的索引
什么是哈希索引
哈希索引基于哈希表实现,只有命中该索引的所有列时才会生效
聚簇索引的数据结构
根据所有索引列计算哈希值,把哈希值放在索引中,并记录哈希指向的数据指针
1 | graph LR |
优点
- 哈希索引只支持等值比较查询,(=、in、<=>、)
- 查询速度更快
缺点
- 哈希索引只存储哈希值和数据行指针,不存储任何字段,所有无法避免数据行的读取
- 哈希索引并不存在顺序,无法用于排序
- 哈希索引需要根据所有索引列匹配,无法用部分列得到哈希值
- 哈希索引没有存储字段,所以无法用于范围查询
- 哈希索引在哈希冲突严重的时候,需要遍历所有冲突的数据,影响查询以及删除效率