Rails 2.3.5 / MySQL关键偏好问题;力量指数

时间:2011-02-10 23:39:43

标签: mysql ruby-on-rails

问候,

我正在寻找一个包含几百万行的“大...”表,为简单起见,该表看起来像这样

create table data (
   user_id int ...
   created_on datetime ...
   ...
   key (user_id),
   key (created_on)
   ...
) engine = InnoDB;

所以,在查询中... SELECT * FROM data WHERE user_id = X and created_on = Y

查询优化器更喜欢created_on而不是user_id,现在我可以使用FORCE INDEX来“强制”解决问题,但我不想为每个Data.find和我们拥有的每个其他查询做到这一点(数百个)变化)。

我可以在可能的情况下影响Rails 2.3.5全局使用“数据FORCE INDEX(user_id_index)”(并且没有其他矛盾;即......手动输入另一个FORCE索引)

我可以更改mysql查询优化器更喜欢索引的方式吗?我看过运行分析表数据;但查询计划不会改变。

-daniel

1 个答案:

答案 0 :(得分:1)

创建复合索引user_id + created_on而不只是user_id,一切都会好的。