Привет,
Я смотрю довольно "большую ..." таблицу с парой миллионов строк, и для простоты ради таблица выглядит следующим образом
create table data (
user_id int ...
created_on datetime ...
...
key (user_id),
key (created_on)
...
) engine = InnoDB;
Итак, по запросу ... SELECT * FROM data WHERE user_id = X и creation_on = Y
Оптимизатор запросов предпочитает create_on, а не user_id, теперь я могу использовать FORCE INDEX, чтобы «форсировать» проблему, но я не хочу делать это для каждого Data.find и любого другого нашего запроса (сотни изменений).
Могу ли я повлиять на Rails 2.3.5, чтобы использовать глобально «data FORCE INDEX (user_id_index)», когда это возможно (и никаких других противоречий; т. Е. Другой индекс FORCE, введенный вручную)
или
Могу ли я изменить то, как оптимизатор запросов mysql предпочитает индексы в более ручном режиме? Я посмотрел на анализ данных таблицы; но план запроса не меняется.
-daniel