Innodb引擎下的索引是B+树索引。
根据是否是聚集索引,又分为聚集索引和非聚集索引(也叫二级索引(Secondary Key)、辅助索引)。
聚集索引
百度百科定义:
聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个。如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相比,聚集索引有着更快的检索速度。
一个表只能有一个聚集索引,即主键。【Innodb引擎的聚集索引的叶子节点的data域存储了一整行的数据】,所以InnoDB的数据文件本身就是主索引文件。
非聚集索引
一个表可以有多个非聚集索引。【Innodb引擎的非聚集索引的叶子节点的data域存储了主键】。
我们在设计表的时候,除了可以指定一个主键之外,还可以根据实际情况,再额外增加若干个索引。
比如学生表有三个字段{学号,姓名,年龄},主键是{学号},但是可以为{姓名}创建索引。