Sembra che tu stia cercando la somma dei conteggi dei record per una serie di query diverse delle tue tabelle.
La prima alternativa... contare i risultati di ogni query, quindi aggiungerli... sarà più veloce. Come mai? Ha meno lavoro da fare. La tua seconda alternativa deve combattere un set di comid
valori e poi contarli. Ci vuole tempo.
Usa COUNT(*)
se potete. È più economico. Usa UNION ALL
invece di UNION
quando puoi; UNION
rimuove i duplicati e UNION ALL
non lo fa. La rimozione dei duplicati richiede tempo.
Le prestazioni di entrambe le alternative dipendono da buone scelte per gli indici per ciascuna sottoquery.