ふり返る暇なんて無いね

日々のメモ書きをつらつらと。メインブログに書くほどでもないことを流してます

キャッシュ(しない)戦略

私がベターだと思うキャッシュ戦略はキャッシュを使わない。

キャッシュは現状速度面で問題になっている。負荷面で問題になっている。または将来的に問題になる蓋然性が高い場面以外では使わない方が良い。不必要なところでキャッシュ機構を入れてしまえば、無駄に実装の複雑度をあげるので、余計な不具合を孕みやすい。
なので、本当に必要な場面でない限りは実装をシンプルに保っていた方が良い。ただし、既存の固いキャッシュフレームワークがあるのであれば、その限りではない場合もある。

1万レコード程度のテーブルであれば、フルテーブルスキャンしててもinnodb_buffer_poolに乗るのでそんなに遅くないし、そもそもssd積んでしまえば、キャッシュ導入で支払うコストより安い場合がある。
まあ、アプリの性質による。フルテーブルスキャンしているのはいけてないので、解消した方が良いと思うけど、indexはったりクエリ書き換えるコストがそれに見合わなければ意味が無いし、現状アプリケーションの速度にそれが影響与えてないし、与える未来が見えないならほぼ意味が無い。

キャッシュに限らないけど、導入するメリットと導入することによってもたらされる現在コストと将来コストを見極めた上で考えたいところ。