Estoy ejecutando una consulta MYSQL en dos pasos. Primero, obtengo una lista de identificadores con una consulta, y luego recupero los datos para esos identificadores usando una segunda consulta a lo largo de las líneas SELECT * FROM data WHERE id in (id1, id2 ...)
. Sé que suena raro, pero lo he hecho de esta manera ya que las consultas son muy complicadas; el primero implica mucha geometría y trigonometría, el segundo muchas combinaciones diferentes. Estoy seguro de que podrían escribirse en una sola consulta, pero mi MYSQL no es lo suficientemente bueno para llevarlo a cabo.Rendimiento de MYSQL "IN"
Este enfoque funciona, pero no siente derecho; Además, me preocupa que no se escale. Por el momento estoy probando en una base de datos de 10,000 registros, con 400 ids en la cláusula "IN" (es decir, IN (id1, id2 ... id400)
) y el rendimiento es bueno. Pero, ¿y si hay, digamos, 1,000,000 de registros?
¿Dónde están los cuellos de botella de rendimiento (velocidad, memoria, etc.) para este tipo de consulta? Cualquier idea sobre cómo refactorizar este tipo de consulta también puede ser impresionante. (por ejemplo, si vale la pena aumentar los procedimientos almacenados).
¿Por qué no pone más detalles de su consulta? – RichardOD
Supongo que no estoy preguntando sobre ninguna consulta en particular; más bien solo si es una buena idea en principio usar "IN" con una enorme lista de parámetros – Roy