急速に拡大するデータベースを使用して、アプリケーションの基盤をセットアップしています。現在、約 12000 人のユーザーしかいませんが、既に 500 万を超えるレコード フィールドを持つテーブルがあります。これにより、実行されるクエリの回数が増え始めています。そのため、クエリまたはページ全体を限られた時間 (たとえば 30 分、場合によっては 1 時間) キャッシュすることを考え始めました。
CodeIgniter (v2.1.4) のキャッシング オプションについては、ユーザー ガイド全体 (ここ、ここ、ここなど) や、キャッシングに関する多数のフォーラムや SO の質問を通じて、多くのことを読みました。
また、Memcached と APC のキャッシュ方法についても少し調べました。コメントと違いに基づいて、 APC Cachingを使用したいと思います。
では、ページのキャッシュには、ページのコンテンツを構成するために必要なすべてのデータも含まれているのでしょうか? それとも、キャッシュされたページが提供されるたびにクエリが実行されますか?
後者の場合、限られた時間 (前述の 30 分または 60 分など) クエリ結果をキャッシュして、データベースがビジー状態になるのを防ぐにはどうすればよいですか?
望ましい状況は、完全なページを保存し、タイマーが切れるたびに (ページに対するユーザー要求なしで) それらを更新できることです。もちろん、ページにはクエリからの新しいデータも含まれます。