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
2021-12-16T02:53:22+00:00
2022-10-28T03:52:50+00:00
NimbleSmall
Вопросы с похожей тематикой, как у вопроса:
MySQL не использует индексы с предложением WHERE IN?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.