web-dev-qa-db-ja.com

ニュースポストキャッシングシステムに対するこのアプローチについての考えはありますか?

私は/news/title-of-news-article--111.html(111 =ニュース記事の一意のID)を使用するWebサイトで作業しています。ニュース記事のために何らかの形のキャッシュシステムを用意するのは良い考えかもしれないと考えていました。

基本的に、私の考えは、ニュース記事の.htmlバージョン(動的に生成されるニュース部分のみ)をライブとしてマークしたときに作成することです(訪問者と検索エンジンがそれを見ることができるようにします)。コンテンツを表示する.phpスクリプトは、ニュースIDを持つ.htmlファイルが存在するかどうかを確認し、データベースを照会する代わりにそれを使用します。もちろん、何らかの理由で.htmlファイルが存在しなかった場合、現在のサイトのようにデータベースのクエリにフォールバックします。

そのアプローチであなたが見ている問題はありますか?これは、多くの訪問者がニュース記事を表示する場合に適しています。理想的には、「静的」な.htmlファイルを取得する方が、クエリを実行するよりもサーバーとデータベースで優れていると考えられるためです。

1
Shawn Collier

それは問題ないように見えますが、なぜファイル名に数値IDを入れるのですか?ユーザーはそれを見る必要はありません。 URLが乱雑になります。

また、探索できる他のソリューションがあるかもしれません。たとえば、MySQLのようなデータベースにはクエリキャッシュがあり、クエリを何度も実行する代わりに、頻繁にクエリをキャッシュします。これはデフォルトで有効になっていますが、サーバーのキャッシュサイズを最適化することもできます。 Memcached を使用すると、データがローカルメモリにキャッシュされるため、データベースサーバーに接続する必要さえありません。

別の注意として、WebサーバーがFastCGIを使用していることを確認してください。 CGIからFastCGIに切り替えると、サーバーの応答時間を文字通り50%以上短縮でき、PHPスクリプトを基本的にフラットファイルの読み込みと同じくらい高速にできます。有能なWebホストはすでにそれを使用しているはずですが、そうでない場合は、これが私にとって優先順位1になります。 PHPスクリプトをバイトコードとしてキャッシュし、応答時間をさらに高速化するAPCを使用することもできます。

フラットなhtmlファイルへのキャッシュは、サーバーの負荷を減らすための賢明な動きだと思いますが、これらの他の最適化も大きな違いを生む可能性があるので注意してください。

1
Lèse majesté