タグ

ブックマーク / k0kubun.hatenablog.com (1)

  • ActiveRecordでN+1 countクエリを潰す方法、あるいはactiverecord-count_loaderの使い方 - k0kubun's blog

    追記:activerecord-count_loaderはactiverecord-precountに変わりました。使い方はこちら。 ActiveRecordでassociationを読むためにN+1クエリが出てしまった場合、 includesなどのメソッドを利用することで発行されるクエリの数を減らすことができる。*1 ところが、それがcountクエリになると、eager loading用のメソッドでクエリの数を減らすことができない。 そこで、N+1 countクエリを潰す方法を調べ、まとめてみた。 ActiveRecordでN+1 countクエリを潰す3つの方法 TweetとFavoriteというモデルがあったとして、Tweetの全カラムと、各TweetのFavoriteの数だけ欲しい場合にN+1 countクエリを潰す方法を示す。 1. counter_cacheを使う class

    ActiveRecordでN+1 countクエリを潰す方法、あるいはactiverecord-count_loaderの使い方 - k0kubun's blog
  • 1