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