N+1ってるぞと叱ってくれるgem 'bullet'

こんにちは!kossyです!


お盆でおやすみ中だと思いますがみなさんいかがお過ごしでしょうか。
私は有給を消化したくないのでまとまった休みを取らずに仕事しています。(弊社は夏季休暇という概念がない、休みを取るなら有給消化)




さて、今回はN+1問題をブラウザ上でアラートとしてお知らせしてくれる、便利なgemについて書いてみたいと思います!
その前にN+1問題についてサクッと説明します。
非常にざっくり言うと、余計にSQLを実行するせいでアプリケーションの動作が遅くなる問題です。


そんなN+1問題ですが、bulletというgemを導入すると簡単に検知できるようになります。
細かい設定はGitHub - flyerhzm/bullet: help to kill N+1 queries and unused eager loadingに譲るとして、

gemfile

group :development do
gem 'bullet'
~
end



ターミナル

bundle install

config/environments/development.rb config.after_initialize do Bullet.enable = true Bullet.alert = true Bullet.bullet_logger = true Bullet.console = true Bullet.rails_logger = true end



でローカル環境にアクセスすると、N+1問題が発生していた場合、アラートが出てきます。
これでいちいちログを見て確認する必要もなくなるので、開発効率の向上が期待できます。