数据的索引原理:
-
最左前缀原则
就是要考虑查询字段的字段顺序,只有遵守这个原则才能最大的提高使用效率
- mysql会从左到右匹配,直到遇到范围查询(>,<,between, like)就停止匹配,比如联合索引(a,b,c,d)匹配a=1 and b=2 and c>2 and d=1,此时d字段是使用不到索引的功能的,如果这时索引的字段顺序是(abdc),此时d就会应用联合索引
- 如果判断条件“=”,那么不会强调字段的顺序,mysql的查询优化器会自动识别形式:a=1 and c=2 and b=2字段顺序a,b,c不做区别
-
联合索引提高查询效率的原理
MySQL会为InnoDB的每个表简历聚集索引,如果表有索引会建立二级索引。聚集索引以主键建立索引,如果没有主键,以表中的唯一键建立,唯一键也会以隐式的创建一个字增的列来建立,聚集索引和二级索引都是一个B+树,B+树是数据按照一定顺序存在叶子节点且每页数据相连。