0

キャッシュの目的で、sql返されたデータのセットが変更されたかどうかを確認する必要があります。HTTP_IF_MODIFIED_SINCE変更されたかどうかを確認the file codeします(間違っている場合は修正してください)。sql返された結果が変更されたかどうかを確認する方法が必要ですか? そうするための最良のアプローチ/方法は何ですか?ありがとう。

4

4 に答える 4

1

MD5(str) を使用できます。

if(md5($lastsql)==md5($nowsql)){}...

MD5の説明

于 2013-06-03T20:27:39.170 に答える
1

SQLが返すデータセットが変更されたかどうかを確認する必要があります

本当の答えは: できません:)

チェックバックしていないのに、データが変更されたことをどのように確認できますか? 正解です - あなただけではわかりません!

データが変更された可能性がある場合は、想定に従ってキャッシュ時間を調整してくださいこれを決める簡単な方法はありません。キャッシングとは、データベースから新しいデータをフェッチするのにどれだけのコストがかかるか、およびおそらく古いデータであなた (ユーザー) がどのくらいの期間存続できるかを比較検討することを意味し、すべてのデータが他のデータと同じようにキャッシュできるわけではありません。

データベース自体はクエリ キャッシュを使用し、そのキャッシュから変更されていない結果セットを提供できるはずです (PHP が実行できるように、はるかにインテリジェントに実行します)。ただし、マルチユーザー環境では、データベース トラフィックが多いため、これらのキャッシュは早期に解放される傾向があります。ここでは、独自のキャッシング戦略を支援できます。

于 2013-06-03T21:38:02.913 に答える
0

HTTP_IF_MODIFIED_SINCE は、ファイル コードが変更されたかどうかを確認します (間違っている場合は修正してください)。

If-Modified-Sinceヘッダーは、指定された日付以降にリソースが変更されていないと判断できる場合に、ステータス コードで応答するようにアプリケーションに指示します304

静的ファイルの場合、通常は Web サーバー自体がこれを処理し、変更日は静的ファイルの変更日です。

PHP スクリプトなどの非静的リソースの場合、アプリケーション (つまりコード) は If-Modified-Since ヘッダー自体を処理する必要があります。ほとんどのアプリケーションはそうではありません。これを実装するアプリケーションは通常、コードではなくデータの変更を参照します。

于 2013-06-03T19:57:16.403 に答える
0

おそらく「楽観的同時実行制御」を行っているでしょう。これには通常、データベースの「バージョン」フィールドが含まれ、HTTP で「etag」として使用できます。(キーワードは「条件付きGET」です)

于 2013-06-03T20:11:32.360 に答える