mysql覆盖索引联合索引区别

发布时间: 2023-11-21 11:23 阅读: 文章来源:1MUMB1370PS

有区别

一个联合索引对于某个select语句,通过索引可以直接获取查询结果,而不再需要回表查询啦,就称该联合索引覆盖了这条select语句。

覆盖索引就是一种特殊的联合索引

联合索引 和 覆盖索引 的区别:

覆盖索引是查询的列可以直接通过索引提取,比如只查询主键的列!或者查询联合索引的所有列或者左边开始的部分列(注意有顺序的)!

而联合索引并不一定只从索引中能获取到所有的数据,这个取决于你所查询的列。

比如select * from table where ; 的方式就不太可能是覆盖索引。

因此如果你查询的列能用到联合索引,且你查询的列都能通过联合索引获取,比如你只查询联合索引所在的列或者左边开始的部分列,这就相当于覆盖索引了。

通常为了让查询能用到覆盖索引,就将要查询的多列数据设置成联合索引。

•••展开全文
相关文章