聚簇索引(主键索引):InnoDB的主键采用聚簇索引存储,使用的是B+Tree作为索引结构,但是叶子节点存储的是索引值和数据本身
非聚簇索引(二级索引,辅助索引)非主键索引,叶子节点=键值+书签。Innodb存储引擎的书签就是相应行数据的主键索引值
InnoDB的二级索引不是聚蔟索引,叶子节点存储的是KEY字段加主键值。因此,通过二级索引查询首先查到是主键值,然后InnoDB再根据查到的主键值通过主键索引找到相应的数据块。
覆盖索引:如果查询条件使用的是普通索引(或是联合索引的最左原则字段),查询结果是联合索引的字段或是主键,不用回表操作,直接返回结果,减少IO磁盘读写读取正行数据
索引为什么使用B+树而不是红黑树
红黑树二叉的,深度高,磁盘io多,效率低
索引为什么不用B-树
B+树除了叶子节点其它节点并不存储数据,节点小,磁盘IO次数就少