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

JOIN consultas versus várias consultas


Para junções internas, uma única consulta faz sentido, já que você obtém apenas linhas correspondentes. Para junções à esquerda, várias consultas são muito melhores ... veja o seguinte benchmark que fiz:

  1. Consulta única com 5 junções

    consulta:8,074508 segundos

    tamanho do resultado:2268000

  2. 5 consultas seguidas

    tempo de consulta combinado:0,00262 segundos

    tamanho do resultado:165 (6 + 50 + 7 + 12 + 90)

.

Observe que obtemos os mesmos resultados em ambos os casos (6 x 50 x 7 x 12 x 90 =2268000)

junções à esquerda usam exponencialmente mais memória com dados redundantes.

O limite de memória pode não ser tão ruim se você fizer apenas uma junção de duas tabelas, mas geralmente três ou mais e vale a pena fazer consultas diferentes.

Como uma nota lateral, meu servidor MySQL está bem ao lado do meu servidor de aplicativos... então o tempo de conexão é insignificante. Se o seu tempo de conexão estiver em segundos, talvez haja um benefício

Franco