1 为什么要用索引?
如果把数据库比作一本厚厚的书,索引就是它的目录。根据索引我们可以快速的找到到我们期望的数据。
2.索引的分类有哪些?
从实现方式的角度(一般和引擎类型有关),我们可以将其分为:聚集索引和非聚集索引。
从实际应用的角度,我们可以将其分为:普通索引、唯一索引、主键索引、组合索引、全文索引。
3.索引和Mysql引擎
InnoDB可以看做是聚合索引,因为它的B+树叶节点包含了完整的数据结构。索引的key就是主键,表数据文件本身就是一个索引用。而且,其他的索引最终都会通过引用主键指向数据结构。
InnoDB内部又将索引分为聚簇索引和普通索引。聚簇索引直接使用主键,普通索引在新增数据时将该数据的索引值指向了主键,然后根据主键去查找数据。
普通索引又分为唯一索引和联合索引。
MyISARM的叶节点只是存储了数据的地址,因此是非聚合索引。主索引和其他索引没有任何区别,只是要求唯一。