###前提・実現したいこと
大量データをCSV出力する時のメモリ不足を考慮して
1件ずつデータを読み込むようにしたいです。
###エラー
無限ループしてしまいます。
DBにユーザーが10人の場合は10人をループで回したいです。
###ログ
・ ・ ・ User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13424 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13425 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13426 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13427 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13428 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13429 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13430 User Load (0.1ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13431 User Load (2.0ms) SELECT `users`.* FROM `users` LIMIT 1 OFFSET 13432
###該当のソースコード
ruby
1require 'kconv' 2 3result = '' 4csvClumn = ['名前::name'] 5result << csvClumn.join(",") 6result << "\r" 7 8limit = 1; 9offset = 0; 10 11while @list = @users.limit(limit).offset(offset) do 12 @list.each do |b| 13 csvValues = [b.name] 14 csvValues = csvValues.join(",") 15 result << csvValues 16 result << "\r" 17 end 18 offset += limit; 19end 20result.kconv(Kconv::SJIS, Kconv::UTF8)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/25 04:47