关注微信公共号:小程在线
关注CSDN博客:程志伟的博客
1.回表
回表就是数据库根据索引找到了我们需要的行,但是还需要根据其他条件来进一步过滤数据。
解决方法:建立复合索引,但是也不能把所有的字段建立索引,存储代价会很大。
2.索引覆盖
索引覆盖就是在我们需要查询的列上建立索引,覆盖我们需要的字段。一般都是复合索引。
3.最左匹配
最左匹配是针对复合索引的,比如复合索引(A、B、C),实际上就建立了索引A、索引AB、索引ABC三个索引,这样可以减少开销,如果一个SQL只使用A,会根据特定的算法快速查找到某个符合条件的索引,一个SQL只使用了B,从索引中的第一个数据一个个的查找到最后一个数据,效率不高。
4.索引下推
索引下推就是在根据索引查询之后,还需要再次查询的。需要查询的列不都是有索引的,但是筛选条件有索引。