大家好,
我看起来相当“大...”有几百万行的表,为了简单起见,表看起来像这样
create table data (
user_id int ...
created_on datetime ...
...
key (user_id),
key (created_on)
...
) engine = InnoDB;所以,在查询时...SELECT * FROM user_id =X和created_on =Y的数据
查询优化器一直更喜欢created_on而不是user_id,现在我可以使用强制索引来“强制”这个问题,但我不想为每个Data.find和我们拥有的每个其他查询(成百上千的更改)都这样做。
我是否可以影响Rails 2.3.5在可能的情况下全局使用“数据力索引(user_id_index)”(没有其他矛盾;即:手动输入的另一个力指标)
或
我可以在更手动的基础上更改mysql查询优化器首选索引的方式吗?我看过运行analyze table data;但是查询计划没有改变。
-daniel
发布于 2011-02-11 08:57:34
创建综合索引user_id + created_on,而不仅仅是user_id,一切都会好起来的。
https://stackoverflow.com/questions/4964000
复制相似问题