今日、smarty の学習を始めたばかりです...
キャッシュのクリアに関する判断が明確ではありません。アドバイスをお願いします:
ホームページやディレクトリのキャッシュはわかりやすく、たくさんあります。キャッシュがない場合は、毎回データベースを確認する必要があります
しかし、記事の具体的な内容に関しては、その必要はありませんか?
状況 1: 記事が変更された場合、キャッシュをクリアする必要があります。記事が変更されたことを確認するにはどうすればよいですか?データベースの更新時刻を確認します... 更新時刻と記事の内容がバインドされてテーブルに配置されます... これと直接クエリの違いは何ですか?
状況 2: 記事がクリックされた後、このクリック数の記録が記事のデータ テーブルに配置されます... クリック数を取得するには、さらにクエリを実行する必要があります。記事のデータテーブル(クリック数やテキストもIt's a watchに配置されています)…何が違うのでしょうか?さらにクリック数のテーブルを作成して記事テーブルに接続する…このデータベース設計無茶苦茶すぎませんか?
ケース 1: is_cached() メソッドを使用して判断できます
ケース 2: クリック数を取得して記事テーブルを確認する これは驚くべきことではありません。 。 。
ケース 1: is_cached() メソッドを使用して決定できます
ケース 2: クリック数を取得し、記事テーブルを確認します これは驚くべきことではありません。 。 。
状況 1: API を読んだ後、is_cached を使用してテンプレートとクエリ パラメーターを通じて判断できることがわかりました。通常の状況では、API は直接キャッシュされます。私は怠け者なので、サーバーも怠け者なので、このキャッシュは 10 年間続くと考えられます。ただし、誰かがこの記事を編集する場合があります。記事が編集されたかどうかを知りたい場合は、編集後に最終編集時刻を変更するだけで済みます。しかし、この方法では、閲覧するたびに記事が編集されたかどうかがわからないため、依然としてデータベースにクエリを実行する必要があり、キャッシュの役割を果たしていないように感じます...
状況 2:それはすでに考えがあります...
実際、これは、異なる ID をクエリするために 10,000 回ループする SQL ステートメントを作成することで判断できるでしょうか?
言い換えると、select * from tablea where `id` = $id が select `modifydt` from tablea where `id`=$id よりも多く消費する場合、実際には、ほとんどの場合、データのクエリの消費が少なくなるだけです。 。
でも、テストするのが面倒です... 答えを直接教えてください...
ケース 1 の場合:
これは、記事をキャッシュする場合、ファイルを維持するのと同じです。データベースを自分で作成します
需要があれば、それもデータをキャッシュする代わりに静的ページを生成します
記事が変更された場合は、静的ページを再生成するだけです