
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
[Rails]find_eachが無限ループして本番環境のメモリを食いつぶした話 - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
[Rails]find_eachが無限ループして本番環境のメモリを食いつぶした話 - Qiita
ActiveRecordにある便利メソッドfind_each 実装の仕方が良くなくて無限ループしてしまい、本番環境でOOM... ActiveRecordにある便利メソッドfind_each 実装の仕方が良くなくて無限ループしてしまい、本番環境でOOM killerによって強制停止させられるという事象が発生したのでその話について書きます。 ※ この記事に登場するテーブルや実装などはすべて記事用にカスタマイズしています find_eachとは find_eachは何をしてくれるかというと、大量のデータを一度に取得してループするのではなく決まった単位(デフォルト1,000件)ごとに取得してループしてくれます。 大量データを扱うときに一括で取得してしまうと大量のメモリを使っていしまうのですが、find_eachを使って分割して取得することで少ないメモリで処理することができます。 言葉で書いてもわかりづらいですね。下記が実行例です。 # userが1万人いる場合 pry(main)> User.all.count (1.1m