我有一个选择语句,
SELECT `metrics`.*
FROM `metrics`
WHERE `metrics`.`engine` = 0
AND (`metrics`.connection_id = 27874)
AND (`metrics`.`id` > 181586235)
ORDER BY `metrics`.`id` ASC LIMIT 1000
这是通过find_each
调用关系(例如metric.engines.find_each
)生成的。此 select 语句每次运行时扫描 1500 万条记录。
我想通过告诉查询只查找metrics.id
s 的范围(例如metrics.id > 1 AND metrics.id < 1000
)来减轻数据库的负担。
有没有办法做到这一点find_each
?