2012-01-22 147 views
1

我對MySQL查詢執行順序有疑問。Mysql查詢執行順序

select * 
from exa_ledger 
where examyear = '2011-11-1' 
    and academicbatch = '2010-6-1' 
    and courseid = '01' 

在上面的查詢中,首先執行哪個條件?條件我的意思是:做檢查開始examyear,academicbatchcourseid

exa_ledger表有120500行,條件匹配數是:

examyear - 60000 rows 
academicbatch - 35000 rows 
courseid - 10000 rows 

應該怎麼寫得到的結果更快的查詢?

+0

如果您爲查詢發佈了表架構和「EXPLAIN SELECT ...」的輸出,將會有所幫助。 – jcmeloni

+0

@Justin Vincent:關於@ jcmeloni問題的任何更新... –

+0

[WHERE子句中的條件順序是否影響MySQL性能?](http://stackoverflow.com/questions/3043042/does-the-訂單的條件-IN-A-where子句-影響MySQL的性能) – outis

回答

0

根據您的應用程序的其他要求,您應該創建一個複合索引,其中包含您提到的部分或全部字段(但至少courseid,因爲它具有最少的行數)。