「find_each」メソッドの使用方法を示す公式のRailsドキュメントを見ています。ここに彼らが与えた例があります
Person.where("age > 21").find_each do |person|
person.party_all_night!
end
これにより、一度に 1000 レコードが処理されます。しかし、私はまだ混乱しています。これはどのように SQL に変換されますか? Ruby が一度に 1000 レコードしか処理できないようにする裏で何が起こっているのでしょうか?
私が混乱している理由は、 Person.where("age > 21") が最初に実行され、すべての結果が返されるように見えるためです。
例えば:
Person.where("age > 21").limit(10)
最初にメモリ内のすべての人を返し、次に最初の 10 人を返しますよね?