N+1というからほわっつ?ってなって、1+Nって言われると理解しやすいと思った。
このページ非常にわかりやすい。
http://www.techscore.com/blog/2012/12/25/railsライブラリ紹介-n1問題を検出する「bullet」/
上のページでいう、PrefectureとShopが一対多の関係になっているときに、Shopの方から、eachの中でshop.prefecture.name みたいにすると、shopの数だけprefecture探すSQL文が発行されることになる。
このページ(参考)では、N+1問題をシンプルに、「全レコードの取得に一つ+各レコード分だけ SQL を発行してしまう問題」と定義していて、要はただこれだけの問題だと感じた。
例えば100万レコードあったら100万回SQL発行されるのかって考えると、さすがにだれでもやばみ感じると思う。
実際にサーバー上で起きる処理の順番でいうと、1回で全件取得した後に、N回SQL発行されるということなので、1+Nなんだなあと思いながら、N+1問題って言葉使えばいいと思った。
対処方法はいくつかあるので、気が向いたら追記する。
N+1問題検知したいだけなら、bulletってgem入れるといいらしい。