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

SQL de valor fixo IN() vs. INNER JOIN desempenho


Isso está relacionado ao comprimento da cláusula IN - e o que às vezes é chamado de BUG no MySQL.

O MySQL parece ter um limite baixo para cláusulas IN, quando ele trocará para um TABLE/INDEX SCAN em vez de coletar várias partições (uma por item IN) e fundi-las.

Com um INNER JOIN, quase sempre é forçado a usar um direto linha por linha na coleção JOIN, e é por isso que às vezes é mais rápido

Consulte estas páginas de manual do MySQL

Posso estar errado, pois parece implicar que IN (constant value list) deve sempre usar uma pesquisa binária em cada item ...