吴伟贤のBlog

Feed Rss

mysql where子句的执行顺序

02.21.2010, mysql, by .

在语句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’ 一章,讲的比较详细的。

评论已关闭。