Ruby on Railsをモデルでidごとのcountを取るような場合に発生しがちなN+1 countクエリを高速化するRubyGems『activerecord-precount』を紹介します。
🗻 概要
次のようなN+1カウントのクエリが発生する場合:
| Tweet.all.each do |tweet| | 
precountメソッドを使うことで、2つのSQLでid単位のcountを取れます。
| Tweet.all.precount(:favorites).each do |tweet| | 
Joinも合わせて行いたい場合はeager_countメソッドを使うことで、1つのSQLでcountをとれます。
| Tweet.all.eager_count(:favorites).each do |tweet| | 
🎳 インストール手順
Gemfileに次の内容を追加してbundle installを実行します。
| # N+1 count query killer for ActiveRecord | 


