私は選択ステートメントを持っています、
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 ステートメントは、実行されるたびに 1,500 万件のレコードをスキャンします。
s の範囲のみを検索するようにクエリに指示することで、データベースでこれを軽くしたいと思いますmetrics.id
(例: metrics.id > 1 AND metrics.id < 1000
)。
これを行う方法はありfind_each
ますか?