Sub Select vs Join
Qual é o mais pesado?
ou
SELECT a.* FROM TableA a WHERE a.status = 1 AND (SELECT b.id FROM TableB b WHERE b.id = a.id AND b.status = 1) = 1
ou
SELECT a.* FROM TableA a WHERE a.status = 1 LEFT JOIN TableB b WHERE b.id = a.id AND b.status = 1
Marcus Holloways
Curtidas 0
Melhor post
Luiz Santos
23/11/2016
Marcus, isso não é uma regra, porque depende muito do tamanho das tabelas, indíces criados, etc... mas normalmente JOIN é mais lento que SUB SELECT.
Tanto que só se usa JOIN se você precisar retornar os campos de 2 ou mais tabelas.
Se não, se recomenda usar o SUB SELECT.
Grande abraço
Tanto que só se usa JOIN se você precisar retornar os campos de 2 ou mais tabelas.
Se não, se recomenda usar o SUB SELECT.
Grande abraço
GOSTEI 1
Mais Respostas
Alec Candia
23/11/2016
Nesse teu exemplo, o JOIN.
Mas, como disse o Luiz Santos, depende do tamanho e critérios de filtragem e índice do SUB SELECT. Se for usado critérios demais numa cláusula WHERE por exemplo, além do tamanho da tabela e a quantidade de campos retornadas, pode ser mais em conta usar um JOIN.
Mas, como disse o Luiz Santos, depende do tamanho e critérios de filtragem e índice do SUB SELECT. Se for usado critérios demais numa cláusula WHERE por exemplo, além do tamanho da tabela e a quantidade de campos retornadas, pode ser mais em conta usar um JOIN.
GOSTEI 1
Marcus Holloways
23/11/2016
Entendi pessoal.
Obrigado pelas respostas :D
Obrigado pelas respostas :D
GOSTEI 0
Fabio Parreira
23/11/2016
Execute sua consulta com CTRL + L, e verifique o plano estimado de execução, nele você pode medir a performance e definir qual teve melhor desempenho.
Eu particularmente utilizo mais os joins. Sub-select mal aplicado pode acabar comprometendo a sua performance, então ao usá-lo tenha muito cuidado, mas como já foi dito anteriormente, cada caso é uma caso diferente.
Abraços.
Eu particularmente utilizo mais os joins. Sub-select mal aplicado pode acabar comprometendo a sua performance, então ao usá-lo tenha muito cuidado, mas como já foi dito anteriormente, cada caso é uma caso diferente.
Abraços.
GOSTEI 0