2010-06-15 117 views
34

假设我有一个漫长而昂贵的查询,它满足条件,搜索大量的行。我还有一个特殊的条件,比如公司ID,它会限制需要搜索的行数,从而缩小到数十万。WHERE子句中的条件顺序是否会影响MySQL性能?

它使MySQL的性能有什么区别我是否做到这一点:

SELECT * FROM clients WHERE 
     (firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND 
     (firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar) AND 
     company = :ugh 

或本:

SELECT * FROM clients WHERE 
     company = :ugh AND 
     (firstname LIKE :foo OR lastname LIKE :foo OR phone LIKE :foo) AND 
     (firstname LIKE :bar OR lastname LIKE :bar OR phone LIKE :bar) 
+3

MySQL也有'EXPLAIN