# Write-back cache (lazy write) and ActiveRecord

**URL:** <https://www.ruby-forum.com/t/write-back-cache-lazy-write-and-activerecord/145280>\
**Category:** Rails\
**Created:** [August 7, 2008, 1:57pm UTC](https://www.ruby-forum.com/t/write-back-cache-lazy-write-and-activerecord/145280 "2008-08-07T13:57:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tero\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/3ab097/32.png) [@Tero\_T](https://www.ruby-forum.com/u/Tero_T)\
**Post date:** [August 7, 2008, 1:57pm UTC](https://www.ruby-forum.com/t/write-back-cache-lazy-write-and-activerecord/145280/1 "2008-08-07T13:57:10Z")

</div>

There are afaik several ways to do multi-record operations on DB.  
Mileage of course varies depending on DMBS.

Is AR capable of folding multi-record modifications (inserts, deletes  
or updates) to single SQL statement? Interface I had in mid was  
something like

with\_lazy\_write do  
massive\_data.each { |item| MyModel.create\_from(item) }  
end

which (depending on DB adapter) could boil down to something like  
these

INSERT INTO my\_models SELECT … UNION SELECT … UNION SELECT …  
INSERT INTO my\_models VALUES (…), (…), (…), (…), (…), …

–  
Tero

---

<div class="post-metadata">

**Author:** ![Tero\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/3ab097/32.png) [@Tero\_T](https://www.ruby-forum.com/u/Tero_T)\
**Post date:** [August 7, 2008, 2:00pm UTC](https://www.ruby-forum.com/t/write-back-cache-lazy-write-and-activerecord/145280/2 "2008-08-07T14:00:06Z")

</div>

On 7 Aug 2008, at 12:46, Tero T. wrote:

> There are afaik several ways to do multi-record operations on DB.  
> Mileage of course varies depending on DMBS.
> 
> Is AR capable of folding multi-record modifications (inserts, deletes  
> or updates) to single SQL statement? Interface I had in mid was  
> something like

Not that I know of.

Fred

---

<div class="post-metadata">

**Author:** ![Tero\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/3ab097/32.png) [@Tero\_T](https://www.ruby-forum.com/u/Tero_T)\
**Post date:** [August 8, 2008, 1:34am UTC](https://www.ruby-forum.com/t/write-back-cache-lazy-write-and-activerecord/145280/3 "2008-08-08T01:34:09Z")

</div>

Am I missing something or am I just the only one who needs to optimize  
multi-record modifications? 🙂

---

<div class="post-metadata">

**Author:** ![Tero\_T](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/3ab097/32.png) [@Tero\_T](https://www.ruby-forum.com/u/Tero_T)\
**Post date:** [August 8, 2008, 4:20am UTC](https://www.ruby-forum.com/t/write-back-cache-lazy-write-and-activerecord/145280/4 "2008-08-08T04:20:20Z")

</div>

For bulk inserts there’s ar-extensions.

Here’s a blog post:  
[http://rubypond.com/articles/2008/06/18/bulk-insertion-of-data-with-activerecord/](http://rubypond.com/articles/2008/06/18/bulk-insertion-of-data-with-activerecord/)
