1、索引分为聚集索引和非聚集索引(主键索引和辅助索引)
主键索引:根节点和父节点存储的是指针和索引的值,子页节点存储的是索引的值和对应一列的数据
辅助索引:根节点和父节点存储的是指针和索引的值,子叶节点存储的是索引的值和对应列的主键索引的值
2、辅助索引分为:
唯一索引:索引列的值必须唯一,允许有一个空值。
单列索引: 即一个索引只包含一个列。
复合索引:即一个索引包含多个列。
3、什么是回表:索引树中不包含需要的值,就需要先在普通索引树中查到对应主键的值,再去主键索引种查需要值,这个过程叫回表
4、覆盖原则:查询采用的索引树包含需要的所有值,不需要回到主键索引去查,简单来说就是不需要回表
5、索引失效:
1、用name和1比较,name上有索引,name是字符串类型,字符串和数字比较的时候,会将字符串强制转换为数字,然后进行比较,
所以第二个查询变成了全表扫描,只能取出每条数据,将name转换为数字和1进行比较。
2、使用了函数之后,name所在的索引树是无法快速定位需要查找的数据所在的页的,只能将所有页的记录加载到内存中,
然后对每条数据使用函数进行计算之后再进行条件判断,此时索引无效了,变成了全表数据扫描。
6、幻读指的是一个事务在前后两次查询同一个范围的时候,后一次查询看到了前一次查询没有看到的行。
7、最左原则:一张表有ABC3个字段,是复合索引,查询的时候,查ABC、AB索引生效,查BC、AC索引不生效,因为索引是以最左的A字段为目标查询,查到A在查B,然后在查C