Oye, tengo que usar la condición IN en mi declaración MySQL con un gran conjunto de identificadores.
Ejemplo
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
¿Existe un límite si los elementos que puede tener la declaración IN?
Oye, tengo que usar la condición IN en mi declaración MySQL con un gran conjunto de identificadores.
Ejemplo
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
¿Existe un límite si los elementos que puede tener la declaración IN?
Respuestas:
No, no lo hay, consulte el manual sobre la función IN :
El número de valores de la
IN
lista solo está limitado por el valor max_allowed_packet .
where id IN (14000 ids)
, funcionará hasta que la consulta de actualización sea inferior a 64 MB (que es el valor predeterminado), ¿verdad?
IN
palabra clave no tiene límites incorporados , sin embargo, puede haber otros límites como los max_allowed_packet
que podrían limitar indirectamente el número de valores. Si establece este valor en 1024 (bytes), puede usar de manera efectiva solo un número limitado de valores.
Por lo que sé en mysql, no hay límite para los elementos de la IN
declaración.
Aunque en Oracle, hay un límite de 1000 elementos en la IN
declaración.
Pero a medida que los elementos IN
estén incluidos, el rendimiento de su consulta se ralentizará a menos que esa columna esté indexada.