Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL:Unterabfragen ODER Vereinigungen?

Anscheinend suchen Sie nach der Summe der Datensatzzahlen für eine Reihe unterschiedlicher Abfragen Ihrer Tabellen.

Die erste Alternative ... die Ergebnisse jeder Abfrage zählen und dann hinzufügen ... ist schneller. Wieso den? Es hat weniger Arbeit. Ihre zweite Alternative muss eine Reihe von comid ringen Werte und zähle sie dann. Das braucht Zeit.

Verwenden Sie COUNT(*) falls Sie können. Es ist billiger. Verwenden Sie UNION ALL statt UNION wenn du kannst; UNION entfernt Duplikate und UNION ALL nicht. Das Entfernen von Duplikaten braucht Zeit.

Die Leistung beider Alternativen hängt von einer guten Auswahl an Indizes für jede Unterabfrage ab.