这是一个关于联合查询中利用索引的问题
一种是INNER JOIN的联合,一种是传统语法联合方案一
SELECT .. FROM table1 INNER JOIN table2 On table2.ID = table1.UserID where table1.Field1 = @Var1 and table1.Field2 = @Var2 ORDER BY ..方案二
SELECT .. FROM table1 , table2 WHERE table1.FIeld1 = @Var1 and table1.Field2 = @Var2 AND table1.UserID = table2.ID ORDER BY ..table2中ID是主键
table1中有关于字段:ResourceType, ResourceID,UserID的复合索引如果使用方案一,INNER JOIN的ON后面的筛选是否会利用索引,如果利用了,那么where后的索引是否还会被利用到?如果不能,那么方案二的查询是否就更优?
P.S.如果我显式指定每个表应用的索引,如将方案一修改为:
select .. from table1 (Index=table1中关于三个字段的索引名) INNER JOIN table2(Index=table2中的主键索引名) ON table2.ID = table1.userID where table1.Field1 = @Var1 and table1.Field2 = @Var2 ORDER BY ..这样能否在一条查询语句中,同时利用两个索引?