按索引类型分
-
普通索引
用于查询的普通索引。可重复,可空。MySQL在查到后,向后继续遍历直到数据不符合查询条件为止。
-
唯一索引
条目必须唯一,不可重复。MySQL在查到后,直接返回结果,因为唯一,不会往后继续查。
-
主键索引
条目唯一且不能为空,不可重复。根据主键唯一确定一条记录。
-
组合索引
多个字段组合为一个索引,条件为AND且包含自索引左侧开始的查询条件,可以使用组合索引。
例如:索引(a,b,c),条件(a AND b),(b AND a),(b AND c AND a)可查,(b AND c),(a OR b) 不可查。
-
全文索引
用于char、varchar,text中搜索文本。
按照索引节点存储内容分
-
聚簇索引
节点存储该条记录的全部数据,需要什么直接拿取即可。
-
非聚簇索引
节点存储的是该条记录的主键,需要其他数据就需要再跑一次主键索引(该操作被称为回表)