現在web上でマンガを作るサービスを作っていて、データ構造が階層的になっています。

novel
-chapter  (コマの集合
--entry  (一つのコマのモデル
---entryBaloon   (吹き出しのモデル
---entryCharacter (画像のモデル

という風な階層構造をbackbone.jsで作っていて、データベースもそれに準じた形で作っているのですが、entryが増えると、サーバからnovel全体をとってこようとした時のパフォーマンスが非常に悪いです。

閲覧だけならキャッシュをとっておけばいいのですが、backboneを使って編集内容を反映しているので、その度にキャッシュをアップデートする訳にもいきません。
現状はトップで表示するものだけキャッシュを作っています。
どうするのが適切でしょうか?

(ソースコードは https://github.com/taizan/ecomaki )