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

MySQL :sous-requêtes OU unions ?

Il semble que vous recherchiez la somme des nombres d'enregistrements pour une série de requêtes différentes sur vos tables.

La première alternative ... compter les résultats de chaque requête, puis les additionner ... sera plus rapide. Pourquoi? Il a moins de travail à faire. Votre deuxième alternative doit se disputer un ensemble de comid valeurs, puis comptez-les. Cela prend du temps.

Utilisez COUNT(*) si tu peux. C'est moins cher. Utilisez UNION ALL au lieu de UNION quand tu peux; UNION supprime les doublons et UNION ALL n'a pas. La suppression des doublons prend du temps.

La performance de l'une ou l'autre alternative dépend de bons choix d'index pour chaque sous-requête.