0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gem bullet導入(N+1問題を分かりやすくするため)

Posted at

なんで導入しようと思ったのか

アプリケーションを作成中にN+1問題を可視化できるにして分かりやすくするような便利な機能ないかな~と探してみましたところタイトルのgemを見つけてこれは便利だと思いましたので、備忘録として使い方を記述していきたいと思います。

そもそもN+1問題って?

Mysqlなどのデータベースからデータを読み込む際に余計にデータを読み込んでしまうことです。
分かりやすく例えるなら、商品を買おうと思ってレジにもっていったら一つ一つ商品をスキャンしていくイメージですね。
アプリケーションの動作がもっさりするなどの弊害があるため基本的にこの問題はなくしたほうが良いです。

導入

以下のコードをGemfileに記述すれば大丈夫です。

grop :development do
 Gem 'bullet'
end

あとはbundle installして下のコマンドを記述すれば準備は完了です

bundle exec rails g bullet:install

公式テキストを見てみましたらどうやらほかにもいろいろと設定ができるらしいですか今回は省略します。

デフォルトで設定されている内容

上記のコマンドで、```config/environments/↑上記のコマンドで、config/environments/development.rbにデフォルトで以下の様なコードが追加されました。

development.rb
Rails.application.configure do
  # ここから
  config.after_initialize do
    Bullet.enable        = true
    Bullet.alert         = true
    Bullet.bullet_logger = true
    Bullet.console       = true
  # Bullet.growl         = true デフォルトでコメントアウトされてる
    Bullet.rails_logger  = true
    Bullet.add_footer    = true
  end
  # ここまでが追加される。以下、同ファイルにもとから入っていた内容は省略
end

bulletの詳細な設定項目一覧←こちらにて各項目の設定内容についての確認ができます。

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?