0

私はアプリケーション開発の初心者です。私は現在 1 つのアプリケーションを開発していますが、私が初心者として直面している問題について貴重な情報を知りたいと思っています。

キャッシングに関しては、アプリケーションのどの部分をキャッシュに追加する必要がありますか? 私がやっていることの例を挙げましょう:

ユーザー向けの写真共有アプリケーションを開発しており、すべてのユーザーのデータ、アルバム、写真をキャッシュするキャッシュメカニズムを作成しました。現在、ページごとに 1 つのクエリがあります (まだキャッシュに保存されていない場合のみ)。たとえば、次のようになります。

if ( !$ItemNotInCache )
{
$MyData = $DB->Query('blah');
Cache::CacheIt($MyData);
}

これは私が得ているすべての結果に関するものです。ユーザーがページをリクエストするたびにあまり多くのクエリを呼び出さないようにしていますが、これは効率的ですか? 問題は、ご理解のとおり、配列内のすべてのデータを操作するために、この巨大なメカニズムを構築する必要があったことです。

  • ユーザーが DB から画像を削除すると、アルバムのキャッシュ データからもインデックスを削除する必要があります。

  • ユーザーが画像を DB に追加すると、array_merge を使用して、このアイテムをキャッシュされたデータなどに挿入します。

私の友人は、私のデータは動的であり、頻繁に変更されるため、キャッシュを悪用するべきではないと私に言いました。彼はまた、これが MySQL の目的であると私に言いました。私の質問は、そのようにキャッシュを使用する必要があるかどうかです。おわかりのように、データは動的であり、頻繁に更新する必要があります。これは効率的ですか、それとも MySQL クエリに固執する必要がありますか?

4

1 に答える 1

0

あなたがしていることはまったく問題ないと思います。キャッシュからの取得は、毎回クエリを実行するのとは対照的に、ほぼすべてのケースで使用するリソースが少なくなります。

ただし、追加した画像を「マージ」しようとはせず、データベースを再度呼び出すだけです。アルバムが変更されたときにキャッシュをインクリメントするだけです。アルバムが変更されたときにキャッシュを編集することは正しいアプローチではないと思います。データベースはデータの保存と構築に優れているため、簡単に取得できます。なぜ自分で建物を作るのですか?

于 2013-08-04T21:08:22.497 に答える