sql >> Base de Datos >  >> RDS >> Mysql

SQL de valor fijo IN() frente a rendimiento de INNER JOIN

Esto se relaciona con la longitud de la cláusula IN, y lo que a veces se denomina BUG en MySQL.

MySQL parece tener un umbral bajo para las cláusulas IN, cuando cambiará a un ESCANEO DE TABLA/ÍNDICE en lugar de recopilar varias particiones (una por elemento IN) y fusionarlas.

Con un INNER JOIN, casi siempre se ve obligado a usar una fila por fila directa en la colección JOIN, por lo que a veces es más rápido

Consulte estas páginas del manual de MySQL

Podría estar equivocado ya que parece implicar que IN (constant value list) siempre debe usar una búsqueda binaria en cada elemento...