如何在find_in_batches中包含:select子句。在‘字段列表’未知列‘users.id’:下面拋出一個錯誤「的Mysql ::錯誤。:使用rails中的find_in_batches進行選擇
Post.find_in_batches(:batch_size => 100, :select => "users.id, users.name, categories.name, posts.id", :include => [:user, :category]) do |group|
#stuff with group
end
OMG ..不要聽這個..「如果你只是檢索所有的領域」。我們(我們的處理器)支付流量......一個20字段的表格170,000條記錄,其中一些字段是varchar(max),並且只在id後面。是一個很好的主意,可以在數據庫網絡中使用megs和megs,並用我們不關心的東西來填充我們的內存。除非您對性能和穩定性絲毫不在乎,否則它會更容易。 – baash05 2013-08-13 23:06:01
也許元帥可能會說的是你應該避免過早的優化。我認爲你應該始終知道你的軌道查詢最終會做什麼以及將要承擔多少負載,但是試圖以開發人員週期爲代價在每種情況下擠出最後一塊性能可能不是最佳的無論是。這絕對是一種平衡。 – eremzeit 2013-11-14 23:33:09
如果你正在使用find_in_batches來優化內存,如果你不打算使用它們,增加獲取所有字段的內存是沒有意義的。 – Ron 2014-07-25 12:57:33