株式会社スペースリー エンジニアの出口です。 普段は弊社サービスの建物や物件といった情報の管理画面を開発しています。 バックエンドはruby on railsで開発されており、今回は建物一覧のレイテンシ改善のためActiveRecordのcounter_cacheを導入した経緯と実装内容についてまとめます。 概要 サービスに登録されているアパートやマンションといった建物の一覧を表示するページでは、建物の情報に加えて建物に紐づいている物件(個々の部屋)の数や撮影された画像の数などを表示しています。 各モデルのリレーションは下図の通りです。建物と物件が親子関係にあり、建物と物件それぞれに属する画像があるというポリモーフィックの関連付けがされています。 建物一覧では建物の情報の他に紐づく物件数や画像数、画像を持っている物件数などを表示します。しかし、建物一覧のデータ取得のたびに物件数などの値を集