寫在開始之前
Rails提供了蠻多好用的方法可以使用,只是很多時候不知道有這些方法,然後又自己繞了一圈去實作相同的方法。今天要講的是find_each & find_in_batches 這兩個批次處理的方法。所謂的批次處理代表的是不要一開始就將所有要處理的記錄一次拿出來,而是分次拿出來處理,如此一來最大的好處就是「節省記憶體」,但原理是?
當我將記錄從資料庫提取出來時,其實就是將「記錄全部實例化放在記憶體裡」,所以當紀錄的量愈大時,所佔用的記憶體就會愈大。因此如果量大到一個程度的話,結果就是...你知道的XD
想像一個情境,今天你架了一個部落格網站,裡面已經有了幾千篇的文章,而你需要修改其中一個欄位的值,那你該怎麼做?可以寫一隻rake,裡面呼叫所有的文章,並修改需要修改的欄位值,如何實作?讓我們繼續往下看。