Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Hora da união do MySQL V.S. consulta separada uma a uma


A UNION O operador requer que tuplas duplicadas (linhas) sejam removidas do conjunto de resultados antes que qualquer linha seja retornada. Isso é efetivamente uma operação SORT UNIQUE. Isso é relativamente barato para conjuntos de resultados pequenos, mas para conjuntos massivos, pode consumir muitos recursos no tempo do servidor (ou seja, levar muito tempo).

Em teoria, combinando as consultas com um UNION ALL operador em vez de um UNION operador seria mais rápido, pois eliminaria (n -1) ida e volta ao banco de dados, versus executar consultas separadamente. Mas para grandes valores de n , você encontrará limites práticos no tamanho do texto SQL (tamanho máximo do pacote).

Dada a escolha entre UNION operador e consultas separadas, para um grande conjunto de resultados, as consultas separadas consumirão menos recursos no lado do servidor.

Resumindo, é realmente uma troca entre o trabalho pesado de cada consulta versus o trabalho pesado de uma operação SORT UNIQUE.