Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment déterminer ce qui est le plus efficace :DISTINCT ou OÙ EXISTE ?

Utilisez EXISTS plutôt que DISTINCT

Vous pouvez supprimer l'affichage des lignes en double à l'aide de DISTINCT ; vous utilisez EXISTS pour vérifier l'existence de lignes renvoyées par une sous-requête. Dans la mesure du possible, vous devez utiliser EXISTS plutôt que DISTINCT car DISTINCT trie les lignes récupérées avant de supprimer les lignes en double.

dans votre cas, il y aurait beaucoup de données en double, donc l'existence devrait être plus rapide.

par http://my.safaribooksonline.com/ livre/-/9780072229813/high-performance-sql-tuning/ch16lev1sec10