我需要關於MySQL中的子選擇性能的建議。由於我無法更改的原因,我無法使用JOIN創建quesry過濾器,我只能在WHERE中添加另一個AND子句。MySQL子查詢性能問題?
什麼的peformance:
select tasks.*
from tasks
where
some criteria
and task.project_id not in (select id from project where project.is_template = 1);
相比:
select tasks.*
from tasks, project
where
some criteria
and task.project_id = project.id and project.is_template <> 1;
注意,這裏的項目數量相對較少whete is_template = 1,並有可能是大量的項目中is_template <> 1.
如果我不能改變任何東西,但沒有過濾器,還有其他方法可以實現同樣的結果嗎?
感謝您的EXPLAIN提示。 似乎在project.is_template上添加索引有很大幫助。 – Marko 2008-12-04 16:28:13