ことはじめ 大量のデータにアクセスして処理を行うとき、全てメモリに展開するとよろしくないので、 少しずつメモリに展開しながら処理をしよう、というのはよくあるケースだと思いますが、 Rails を使っている場合は下記の2メソッドが候補に上がるかと思います。 find_each find_in_batches それぞれの使い分けがいまいちわかっていなかったので、調べてみました。 それぞれのメソッドについて find_each デフォルトで1,000件 ( batch_size で指定する)ずつデータを取得し、 取得したデータを 1件ずつ 処理する。 User.find_each(batch_size: 2) { |user| p user } => User Load (0.3ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC