关于mysql多表关联索引使用情况问题探讨
关于mysql执行表关联的时候,使用索引的情况问题探讨。
SQL分别如下:
SQL1:
SQL2:
t表中有索引uk_index(`shop_id`,`sum_date`)。
想请问SQL1的写法和SQL2的写法是否有区别,将sum_date写在Where条件中,是只会用到组合索引的shop_id,还是会用到shop_id和sum_date????
从explain来看,两者似乎并没有差异,如何解释这种现象?
高性能mysql中有提到关联执行的策略是循环嵌套,即从s表中取出一条数据,在t表中寻找匹配的行,匹配条件应该是on,所以我认为SQL1索引会使用到shop_id和sum_date两个字段,但SQL2是如何执行的呢?
以下截图是高性能Mysql的原话: