MySQL no utiliza índices con la cláusula WHERE IN?

Estoy tratando de optimizar algunas de las consultas de la base de datos en mi aplicación Rails y tengo varias que me han dejado perplejo. Todos están usando unaIN en elWHERE cláusula y todos están haciendo escaneos de tabla completa a pesar de que un índice apropiado parece estar en su lugar.

Por ejemplo

SELECT `user_metrics`.* FROM `user_metrics` WHERE (`user_metrics`.user_id IN (N,N,N,N,N,N,N,N,N,N,N,N))

realiza un escaneo completo de la tabla yEXPLAIN dice

select_type: simple
type: all
extra: using where
possible_keys: index_user_metrics_on_user_id  (which is an index on the user_id column)
key: (none)
key_length: (none)
ref: (none)
rows: 208

os índices @Are no se usan cuando unIN ¿se usa la declaración o necesito hacer algo diferente? Rails está generando las consultas aquí, por lo que podría volver a ver cómo se definen mis relaciones, pero pensé que comenzaría con posibles soluciones en el nivel de base de datos primero.

Respuestas a la pregunta(5)

Su respuesta a la pregunta