CakePHP の view キャッシュを今日知りました。これはページ丸ごとキャッシュすることができます。従って element などで細々キャッシュを作っていた部分も一緒にキャッシュ出来てしまうので、element キャッシュは必要ないのではないかと思われますが、そうでもないです。
element キャッシュは負荷をさらに抑える
element キャッシュが必要ではないと判断するとすれば、もちろんこれを削除してみるわけですが、そうすると view キャッシュを毎回作成する際に今まで element キャッシュをしていたところを作るわけです。もし今まで element キャッシュの部分で急上昇ワードみたいなものを作っていたのなら毎回負荷が発生してしまいます。
view キャッシュをしていても element キャッシュをすれば以下のようになります。
- element キャッシュで高負荷な処理を一回してキャッシュ作成。
- view キャッシュするが高負荷な処理は既に終わっているのでそれを含んだキャッシュを作成。
view キャッシュがあるから element キャッシュがいらないというわけではなく、element キャッシュなどで負荷を減らし、さらに view キャッシュでも負荷を減らすことができます。
element キャッシュは今まで通りに細々と作るべき
view キャッシュが便利すぎて今までの細々なキャッシュを取る必要性がぐっとなくなる気もしますが、なるべく今まで通り element キャッシュも作るほうが良いです。
例えば検索結果ページなどはあまりにも複数のパターンでリクエストが発生しますので実質キャッシュも取らないし返って混乱を招くので取りません。すると、キャッシュはしなくなるわけです。もしここで element で細々キャッシュしていれば、最低限のキャッシュはかかりますけど、view キャッシュがあるから良いやと投げ出していればキャッシュなしの毎回生成です。
一日数百のアクセスしかないサイトであれば特に問題はありませんが、これが数万と増えてこれば違いますね。後々アクセスが増えた際にサイトに手を加えなければいけないのは非常に厄介です。
以上、キャッシュについて頭の中で考えていたことをまとめてみました。
詳しい人は意見を頂けるとここに追記させて頂いたり修正させて頂きます。
コメント