J'ai besoin de conseils concernant les performances de sous-sélection dans MySQL. Pour une raison que je ne peux pas changer, je ne suis pas capable d'utiliser JOIN pour créer un filtre de quesry, je peux seulement ajouter une autre clause AND dans WHERE.MySQL sous-sélectionne la question de performance?
Quelle est la peformance de:
select tasks.*
from tasks
where
some criteria
and task.project_id not in (select id from project where project.is_template = 1);
par rapport à:
select tasks.*
from tasks, project
where
some criteria
and task.project_id = project.id and project.is_template <> 1;
Notez qu'il existe nombre relativement restreint de projets whete is_template = 1, et il pourrait y avoir un grand nombre de projets dans lesquels is_template <> 1.
Existe-t-il un autre moyen d'obtenir le même résultat sans sous-sélectionner si je ne peux rien changer d'autre et filtrer?
Nous vous remercions du conseil EXPLAIN. On dirait que l'ajout d'index sur project.is_template aide beaucoup. – Marko