2012-01-22 33 views
1

MySQLクエリの実行順序に関する疑問があります。Mysqlクエリの実行順序

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

上記のクエリでは、どの条件が最初に実行されますか?条件は私が意味するもの:チェックはexamyearacademicbatchまたはcourseidで始まりますか?

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- condition-in-where-clause-affected-mysql-performance)を使用して、 – outis

答えて

0

アプリケーションのその他の要件に応じて、前述のフィールドの一部またはすべてを含むコンポジットインデックスを作成する必要があります(行の数が最小であるため、最低1つのコースIDで作成する必要があります)。