- ベストアンサー
キャッシュ処理でDBへのアクセスを軽減できるか?
- キャッシュ処理を使用してDBへのアクセスを軽減する方法についての情報を教えてください。
- レンタルサーバーへのアップに際して、キャッシュ処理を活用してDBへのアクセスを軽減する方法について知りたいです。
- キャッシュ処理を導入することで、DBへのアクセス負荷を軽減することは可能なのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
PEARのCacheLiteなどが、HTML等ファイルをキャッシュするのに一番簡単な方法かと思います。 それはそれとして、今回もし実装するとしたら、こうなるかなっといった、パット思いついたものを記述します。 1.一番最初に参照される(SQL文が発行される) 2.データベースに問い合わせ、取得されたレコードの情報を、serialize関数などで符号化してファイルに格納する 3.二度目に参照される際、もし「2.」で作成されたファイルが存在するのであれば、SQLを発行しないで、ファイルに格納したデータをunserializeして、それを表示する 4.そのページの管理画面等から何か情報の更新を行った場合は、2で作成したファイルを削除する といった流れにすれば、無駄な問い合わせが減るかなぁと、思います。
その他の回答 (2)
- yambejp
- ベストアンサー率51% (3827/7415)
検索項目にもよりますが、更新頻度が高くなく、集計項目がきめうちなら キャッシュというよりはcronなど定期処理でスタティックにhtmlを吐いてやる方が すべての面で有利です。 逆にいろいろな検索をするのであれば、発行されるSQLは毎回ことなるのですから キャッシュされるケースはまれでしょう
お礼
yambejp様 お世話になっております。ご親切なアドバイスをありがとうございます。 質問当初からお伝えすべきところだったのかも知れませんが、表示したい内容とは、 イメージ的に、ここ「教えて!goo」を例に出すとしたら http://oshiete.goo.ne.jp/qa/6304981.html と、アクセスされたとき、6304981.htmlというファイルには表示すべきデータはなく、 DBから都度データを取り出しているという具合です。 どうしたものでしょうか・・ 引続きアドバイス頂ければ幸いです。
- infeeld
- ベストアンサー率37% (3/8)
「DBから取得したデータを配列等に格納しておいて、次回からはDBにアクセスせずに配列からデータを取り出すといった処理は可能か?」と言ってるのだと思います。 ページにアクセスされる度にDBへのアクセスが発生するので、一般ユーザだけでなくクローラ等からのアクセスでもDBアクセスが発生してしまい、負荷が高くなっているのでしょう。 早めのご検討をお勧めします。
お礼
infeeld様 こんにちは。お忙しい中ご親切なアドバイスをありがとうございます。 仰るように、次回アクセス時より配列に収めたデータを参照するようにすれば、負荷が掛らなくなりますね! そこで、改めお伺いしたいのですが、この「次回より」とは、どのような仕組みになるのでしょうか?もしくはその辺りのことが書かれているサイト(または検索キーワード)をお教え願えないでしょうか? お忙しい中恐縮ですが宜しくお願い申し上げます。
お礼
hogehoge78様 ご親切な回答をありがとうございます。 はじめてのことだったので、その適切な対応をどのようにしたら良いか困っているところでした。 貴重なご意見ありがとうございました。