エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
eachの危険性を体で覚えて、その代替手段を知る(Ruby, Rails) - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
eachの危険性を体で覚えて、その代替手段を知る(Ruby, Rails) - Qiita
やっちまった 話を単純化してお伝えすると、1万件以上レコードがあるusersテーブルに対して、is_active... やっちまった 話を単純化してお伝えすると、1万件以上レコードがあるusersテーブルに対して、is_activeというカラムがあって、全員trueにしたかったです。 これを実現するのに、全usersにeachをかけてupdate_columnする処理を仕掛けたら、本番のサーバーを一瞬死なせてしまい、めちゃめちゃ焦りました。 User.all.each do |user| user.update_column(:is_active, true) end User.all.eachすると、該当するレコードを全て取得してきて、メモリに置いて処理をするので、それで激烈に重くなってしまうようです。この場合、Userのインスタンスを1万件以上取得して配列にしてそれをメモリにドーン!と置いて処理しようとしたので、それがメモリを強烈に圧迫してしまったみたい。 解決策1:find_eachを使う この時の対