- Hash索引:
Hash索引基于哈希表实现,只有精确匹配的查询才有效,对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hash code),并且Hash索引将所有的哈希码存储在索引中,同时在索引表中保存每个数据行的地址。 - B-Tree索引:
B-Tree能加快数据的访问速度,因为存储引擎不再需要进行全表扫描来获取数据,数据分布在各个节点之中。 - B+Tree索引(MySQL使用B+Tree):
B+Tree是B-Tree的改进版本,同时也是MySQL数据库索引所采用的存储结构。数据都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都指向相邻的叶子节点的地址。相比B-Tree来说,进行范围查找时只需要查找两个节点,进行遍历即可,而B-Tree需要获取所有节点,相比之下B+Tree效率更高。