counter_culture

has_manyの数を数えるやつ(投稿に対してのコメント数とか)、馬鹿正直にクエリ(って言うんだっけ)を投げると処理に時間がかかる。いい方法ないかなと思ったら、counter_cacheってのがあるらしい。

Rails order by results count of has_many association - Stack Overflow

Active Record Associations — Ruby on Rails Guides

でもこのcounter_cache、ぐぐってみると、デッドロックとかいうのが出たりとかするらしい。

で、そこら辺をうまくやるのがcouter_cultureってやつらしい。

件数のキャッシュをcounter_cacheじゃなくてcounter_cultureで - リア充爆発日記

Railsのcounter_cacheを使ったらdeadlockが頻発した - Qiita

magnusvk/counter_culture

なんかカウントに不整合が出たりするって書いてあったりするけど、そこら辺は僕よりもっと頭のいい人がうまく解説してくれると思います。

joinsとmerge

参考にしたリンクだけ

ActiveRecord4でこんなSQLクエリどう書くの? Merge編 - TIM Labs

Rails で十分に活用されていなくてもったいない ActiveRecord::Relation のメソッド TOP 10 - 杉風呂2.0 - A Lifelog -

Rails - ActiveRecord で merge メソッドの引数に order メソッドを含んだ Relation を渡すと ORDER BY のテーブルが変わってしまう - Qiita

Rails - mergeメソッド使ってます? - Qiita

Railsのincludeとjoinの違い。 / チュパカブラの勉強日記

ASCIIcasts - “Episode 215 - Advanced Queries in Rails 3”