Valor fixo de SQL IN () vs. INNER JOIN performance
Em resposta aesta questão SQL, Encontrei uma afirmação de valor fixoIN()
operador é muito mais lento queINNER JOIN
com o mesmo conteúdo, a tal ponto que é melhor criar tabela temporária para os valores e JOIN-los. É verdade (em geral, com o MySQL, qualquer outro mecanismo SQL) e se sim - por quê? Intuitivamente,IN
deve ser mais rápido - você está comparando a correspondência potencial com um conjunto fixo de valores, que já estão na memória e no formato necessário, enquanto que com o JOIN, é necessário consultar os índices, potencialmente carregar dados do disco e executar outras operações isso pode não ser necessário com IN. Estou perdendo algo importante?
Note que ao contrárioessa questão e são muitas duplicatas, eu estou falando sobreIN()
tendo conjunto fixo de valores, não subconsulta.