InnoDB索引
1.InnoDB存储引擎索引概述
InnoDB存储引擎支持以下几种常见的索引 :
- B+树索引
- 全文索引
- 哈希索引
InnoDB存储引擎支持的哈希索引是自适应的, InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引, 不能人为干预是否在一张表里生成哈希索引.
B+树索引就是传统意义上的索引, 这是目前关系型数据库系统中最常用和最有效的索引. B+树索引的构造类似于二叉树, 根据键值(Key Value)快速找到数据.
B+树中的B不是代表二叉(binary), 而是代表平衡(balance)
B+树索引并不能找到一个给定键值的具体行. B+树索引能找到的只是被查找数据行所在的页. 然后数据库通过把页读入到内存, 再在内存中进行查找, 最后的到要查找的数据
2.B+树索引
B+树索引的本质就是B+树在数据库中的实现. 但是B+树索引在数据库中有一个 特点是高扇出性, 因此在数据库中,B+树的高度一般都在2-4层,也就是说查找某一键值的行记录时最多只需要2到4次IO
数据库中的B+树索引分为聚集索引和辅助索引, 不管是聚集索引还是辅助索引, 其内部都是B+树, 即高度平衡的, 叶子节点存放着所有的数据. 聚集索引与辅助索引的区别是 : 叶子节点存放的是否是一整行的信息
1>聚集索引
InnoDB存储引擎表是索引组织表, 即表中的数据按照主键顺序存放. 而聚集索引就是按照每张表的主键构造一棵B+树, 同时叶子节点中存放的即为