Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:sottoquery O unioni?

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.