エンジニアになりたい

エンジニアです

BulletがN+1を検出してくれない事があってそれが分からない

Bulletというgemがある。この人は無駄にクエリが流れていないか、いわゆるN+1になっていないかを見つけて報告してくれる。

github.com

使っていて「あ、N+1になってたんだ。解決しないと」ってなってとても便利。

しかし、ある時Railsのログを見ていたら、明らかにN+1っぽいクエリが流れていたのにBulletがそれを検出出来ていない感じだった。

そしてこのブログを書こうか迷ったのだけど・・・ 結局なぜ検出出来ていないのか分かっていない。 (分かったらまたブログ書く。。)

なので、このブログは「Bulletでも検出出来ない事がある」ということが分かった程度の内容だ。

今回のようなケースがあるので、投げているSQLに不安があるような場合は、下の様に監視しながら開発をした方が良いかもしれない。

$ tail -f development.loog | grep SELECT