Skip to content
This repository has been archived by the owner on Sep 21, 2022. It is now read-only.

モデルキャッシュの仕組みの実装 #4

Open
ktanakaj opened this issue Mar 27, 2019 · 0 comments
Open

モデルキャッシュの仕組みの実装 #4

ktanakaj opened this issue Mar 27, 2019 · 0 comments
Assignees

Comments

@ktanakaj
Copy link
Owner

ObjectReceiverを繰り返し呼ぶと、同じモデルに大量のSQLが発行されてしまう。どこかにモデルインスタンスをキャッシュする仕組みなどを作って改善する。

案1)
Model::findOrFailWithCacheみたいなメソッドを作って、それから取った場合はキャッシュされているインスタンスがあればそれが取れるようにする。
(saveWithCacheで仮保存。)
CustomDB::transaction みたいなものでくるんで、transactionが終わったタイミングで本当のsaveする。
→ 欠点: scopeやらwhereやらModelのいろんなfindが使えなくなる。インスタンスを更新したけど保存しない場合など、何か対策しないと事故る。

案2)
案1と同じだが、ObjectReceiverにインスタンスを管理させる。影響範囲は小さい。
→ 欠点: ObjectReceiver系の処理がそこだけ独自の世界になってしまう。

@ktanakaj ktanakaj self-assigned this Mar 27, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant