2010-10-20 10 views
10

Sono interessato a sapere se un'unione è migliore di eseguire più query.mysql union vs più query

Se sì, ci sono momenti in cui più query sarebbero più veloci o preferite per altri motivi?

+1

perché un voto basso? – Yehosef

risposta

9

Se si utilizza UNION ALL e non si ordina l'output, le prestazioni di UNION dovrebbero essere più o meno uguali alle prestazioni di più query separate assumendo che le query siano identiche a quelle che si stanno UNION insieme. Se si ordinano i dati, ovviamente si sta imponendo un sovraccarico (anche se probabilmente meno se si è ordinata la propria applicazione). Se si omette la parola chiave ALL, MySQL eseguirà il lavoro extra di DISTINCT-i risultati. Ancora una volta, questo impone un ulteriore sovraccarico, anche se probabilmente meno di farlo da soli.

0

Chiedi se "è migliore" - presumo che tu stia parlando di "rendimento saggio"?

Se l'impatto della velocità è minimo, è possibile preferire più query per mantenere il codice più leggibile; invece di gestire più query, fare cose diverse, in un'unica unione.

Dipende dal caso d'uso, di sicuro. Ma il codice leggibile e comprensibile potrebbe avere la pena in un progetto più grande a lungo termine

+0

Grazie - sì, intendo che è più performante. La leggibilità del codice non è davvero una preoccupazione (per me ..) perché è possibile mantenere le query separate e quindi a livello di codice unirle con la sintassi "UNION" o meno. – Yehosef