Skip to main content

batch_processing_find_each

📈 Batch Processing Huge Result Sets​

Avoid loading millions of records into memory by using find_each or in_batches with custom batch sizes and scopes. You can chain conditions to process only relevant subsets and even update records in place within each batch.

Order.where(status: 'pending').in_batches(of: 1_000) do |batch|
batch.update_all(processed: true)
puts "Processed #{batch.size} orders"
end

Custom batch sizes and combining select with pluck for only the required columns further optimizes throughput and memory usage.