タグ

ブックマーク / qiita.com/tachiba (1)

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

    rails (3.2.3) activerecord (3.2.3) mysql2 (0.3.11) ちょっと遡って話をしたほうがいいのかも。 前提:Mysql(InnoDB)でcount(1)はテーブルスキャンが発生して遅い 非力なインスタンスを使っていたので、 数十万件ってレベルからこれがボトルネックになっていた。 そのために、Railsが装備しているcounter_cacheという機能を使う。 ただ、counter_cacheってのは関連するモデルの件数を覚えておくっていう方法で、 テーブルの全レコードの数を保存しておく方法ではない。 それをしたいなら別の実装を。 参考:A Guide to Active Record Associations counter cahceってなんだ 繰り返しになるけど、関連するモデルの件数を覚えておく。 class Order < ActiveRec

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