MySQL не использует индексы с предложением WHERE IN?

Попробуйте принудительно databases использовать этот индекс:

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

Я rails только что проверил, он действительно optimize использует индекс по тому optimisation же запросу:

EXPLAIN EXTENDED
SELECT * FROM tests WHERE (test IN ('test 1', 'test 2', 'test 3', 'test 4', 'test 5', 'test 6', 'test 7', 'test 8', 'test 9'))

1, 'SIMPLE', 'tests', 'range', 'ix_test', 'ix_test', '602', '', 9, 100.00, 'Using where'

sql

mysql

ruby-on-rails

database

optimization

2022-10-28T03:52:50+00:00