# Bulk Inserts. Fast way to insert 1000s records?

**URL:** <https://www.ruby-forum.com/t/bulk-inserts-fast-way-to-insert-1000s-records/60003>\
**Category:** Rails\
**Created:** [May 9, 2006, 12:01pm UTC](https://www.ruby-forum.com/t/bulk-inserts-fast-way-to-insert-1000s-records/60003 "2006-05-09T12:01:54Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![crenner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/278dde/32.png) [@crenner](https://www.ruby-forum.com/u/crenner)\
**Post date:** [May 9, 2006, 12:01pm UTC](https://www.ruby-forum.com/t/bulk-inserts-fast-way-to-insert-1000s-records/60003/1 "2006-05-09T12:01:54Z")

</div>

Hi,

This code loops through my results and saves them :

@results.each{|r| r.save}

There are potentially thousands of results. This takes ages to  
complete.  
Is there a quicker way to do this?

Any help is greately appreciated  
Thanks  
Chris

---

<div class="post-metadata">

**Author:** ![crenner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/278dde/32.png) [@crenner](https://www.ruby-forum.com/u/crenner)\
**Post date:** [May 9, 2006, 3:05pm UTC](https://www.ruby-forum.com/t/bulk-inserts-fast-way-to-insert-1000s-records/60003/2 "2006-05-09T15:05:17Z")

</div>

Chris R. wrote:

> Any help is greately appreciated  
> Thanks  
> Chris

Wrapping this in a transaction block should offer some improvement  
provided your db supports transactions.

–  
Jack C.  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![crenner](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/278dde/32.png) [@crenner](https://www.ruby-forum.com/u/crenner)\
**Post date:** [May 9, 2006, 3:33pm UTC](https://www.ruby-forum.com/t/bulk-inserts-fast-way-to-insert-1000s-records/60003/3 "2006-05-09T15:33:51Z")

</div>

On Tuesday, May 09, 2006, at 12:01 PM, Chris R. wrote:

> Any help is greately appreciated  
> Thanks  
> Chris
> 
> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> * * *
> 
> Rails mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.rubyonrails.org/mailman/listinfo/rails](http://lists.rubyonrails.org/mailman/listinfo/rails)

At the extreme - - you can write your data to a temporary CSV file then  
use the native database bulk loader (assuming there is one) to do the  
load.
