1. InnoDB索引概述
InnoDB可支持如下几种索引:
- B+树索引:由平衡二叉树演化而来,给定键值不能找到具体的行,只是找到数据行所在的页,然后将该页读入内存,再在内存中进行查找想要的数据.
- 全文索引
- 哈希索引:InnoDB支持的哈希索引是自适应的,会根据表的使用情况自动为表生成哈希索引,不能人为干预一张表的是否生成哈希索引.
2. B+树索引
B+树索引的一个特点是“高扇出性”(可理解为每个节点对应的下层节点较多),因此在数据库中B+树的高度一般为2~4层,查找某一键值的记录时只需2~4次IO操作,按照磁盘没秒100次IO操作的速度,查询时间仅需0.02s~0.04s.
2.1 聚集索引
(1) InnoDB存储引擎是索引组织表,即表中的数据按照主键的顺序存放。聚集索引就是按照每张表的主键构造一棵B+树,其叶子结点存放行记录数据,称为数据页.
(2) 由于实际的数据页只按照一棵B+树进行排序,因此一张表只能拥有一个聚集索引。由于定义了数据的逻辑顺序,因此聚集索引能够快速的针对范围值进行查询, 大多数情况下,查询优化器倾向于采用聚集索引进行查询。
(3) 聚集索引的数据页通过双向链表进行链接,按照主键的顺序排序ÿ