はじめに Ruby on Rails界隈でよく耳にする「N+1問題」について解説します。 N+1問題を理解することで無駄なSQLの発行を抑え、処理時間の削減に繋げることができます。 ↓読んでほしい人 N+1問題を知らない人 Ruby on Rails初心者〜中級者 性能改善したい人 N+1問題とは ループ処理の中で都度SQLを発行してしまい、大量のSQLが発行されてパフォーマンスが低下してしまう問題のことです。 日常生活で例えるなら、スーパーで商品を1点ずつお会計するようなもの。 それだけ無駄なことを行なっている状態を指します。 え、そんなアホなこと普通はしないって思いますよね? でもRailsを使用していると往往にしてこの問題が発生してしまうのです。 N+1問題の例 会社(companies)とそれに所属する人(users)を例に説明します。 例えばcompaniesテーブルとusers
