在语句select * from t where A=a and B=b中,会先执行A=a还是B=b呢?
因为如果你给A和B都添加索引,那么, 是由索引来判断实际进行查询的记录数。
假设:A索引,B没有索引,所以查询语句会只检索A=’a’下的记录,同时匹配B=b,KEY是A
反之,A无索引,B索引,则KEY为B,也就是说,优先权到了B字段。
如果AB都索引,则由索引判断A=’a’与B=’b’的记录数,谁少,则谁是KEY,优先权归谁。
建议LZ仔细看看mysql手册的
‘How MySQL Uses Indexes’ 一章,讲的比较详细的。