rails ActiveRecordのデータを `in_batches` で一定数毎に取得する

本稿について

本稿はサイト運営者が学んだことなどを記したメモの内容です。
全てが正確な情報とは限りません。ご注意ください。また修正するべき点は適時修正していきます

batchなどの処理でDBから大量のデータを一気に処理する時に例えば外部のサービスなどと連携したり、重めの処理を行う場合に一定数ずつ処理を行いたい場合に利用する。

Rails5以降はin_batches

それ以前は find_in_batches 自分はこちらは利用したことがない。

デフォルトは1000件ずつ。

in_batches はRelationでとれるので、update_allなどの処理をするときが良い。

もし単純にデータを取得したい場合には以下のように書く

User.find_in_batches(batch_size: 100) do |users|
...
end

[参考]

Back