Innodb存储引擎索引概述
该存储引擎支持两种常见的索引:B+索引、Hash索引。
Hash索引
Innodb存储引擎支持的Hash索引是自适应的,引擎会根据表的使用情况自动生成Hash索引,不能人为干预是否在一张表中生成hash索引,Mysql5.5后可以关闭hash索引。
B+树索引
B+树索引是目前数据库中最常用的最有效的索引;
B+树索引的构造类似于二叉树,根据键值最快的找到数据,B代表balance;
B+树索引并不能找到给定键值的所在的行,只能找数据行所在的page,再把page读到buffer中,最后找到所需数据。
B+树索引分为:聚集索引和辅助聚集索引
不管是聚集索引还是非聚集所以,其内部都是B+树,即内部高度是平衡的;
聚集索引和非聚集索引不同的是:叶子节点存放的是否是一整行的数据;
Innodb存储引擎表就是索引组织表,类似于oracle中的IOT表,表的数据按照主键的顺序存放,而聚集索引就是按照表的主键造一棵B+树,并且叶子节点存放着整行数据;从某种角度来说,索引就是表,表就是索引;
对于主键的排序查找和范围查找速度很快。