非聚簇索引,索引的逻辑顺序和磁盘上物理存储顺序不一样,非聚簇索引在叶子节点存储的是主键和索引列,当我们使用非聚簇索引查询数据时,需要拿到叶子节点上的主键在去表中查需要的数据,这个过程叫做回表。...哈希索引的缺点
哈希索引没有办法利用索引完成排序
不能进行多字段查询
在有大量重复键值的情况下,哈希索引的效率也是很低的(哈希碰撞问题)
不支持范围查询
如何高效设计索引的数据结构
MySQL的存储结构...当数据在磁盘中时,磁盘IO会成为性能瓶颈,设计的目标应该是降低IO次数,而树的高度越高,增删改查所需要的IO次数也会越多,会严重影响性能。...图中的每个节点称为页,页就是我们上面说的磁盘块,在MySQL中数据读取的基本单位是页,所以我们这里叫做页更符合MySQL中索引的底层数据结构。...数据库中页的大小是固定的,InnoDB中页的默认大小是16KB,如果不存储数据,就会存储更多的键值,相应的树的阶数(节点的子节点数)就会越大,所构建成的树就会又矮又胖,这样每次查数据的磁盘IO就会更少,