- ベストアンサー
MySQLへのアクセスは極力減らした方が良い?
- MySQLへのアクセスは減らすべき?ブログ作成におけるPHPとMySQLの組み合わせについて
- MySQLへのアクセスを減らす方法とは?ブログなどの記事表示やアクセス解析における考慮点
- 安いレンタルサーバーでのMySQLアクセス速度の違いはあまりない?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
要はアクセス数に耐えるために、 「最終的に出力データにどこまで近づけておくか」によって違います。 あまり負荷が高いと、レンタルサーバーの管理者に止められたりします。 一般的なWebアプリケーションは以下のような層で分けられています。 Webサーバー(html) > アプリケーションサーバー(PHP) > DBサーバー(DB) MovableTypeなどのブログはHTML出力しておくものが多く、 その場合でもDBからデータをとって、PHPなどで整形して、HTMLにしています。 この場合は「できるところまで出力データに近づけている」と考えてください。 データの大元はDBですが、 1アクセスごとにその処理をするとなると、 毎回同じ出力ならその部分をあらかじめ作っておけば早く処理できます。 HTMLにしておくというのもキャッシュの一部と考えても良いでしょう。 > 完全にhtmlだけにできるなら最初からhtmlが良いと思いますが、結局phpも混ぜるなら最初から記事の表示まですべてPHPからデータベースへアクセスしてという形の方が良いのかとも思ってしまいます。 やろうと思えばPHPとDBの間にキャッシュを作ることもできます。 また、HTMLを生成するようなやり方で、phpファイルを生成することもできます。 > ただ、記事表示だけでなく、PHPのアクセス解析などを使ったりしたいので、どのみちphpファイルで作るしかありません。 この場合は簡単なのは記事の分だけphpファイル生成するとかでもいいかもしれませんね。 > ブログの記事にしろ、アクセス解析にしろ、訪問者が来るたびにデータベースにアクセスするような作り方は避けた方が良いですか? 一般的には避けた方がいいです。 ただ、これもアクセス数によります。 個人のブログで、炎上でもしなければ、普通に大丈夫だと思いますよ。
その他の回答 (3)
「たいしてアクセスも多くないブログのデータベースアクセスなんて気にする必要ない」というのは、まぁ確かにそうなんですが。PHPとMySQLの勉強を兼ねてブログのようなものを作ってみたいのですよね? 例えば業務でデータベースを利用するWebアプリケーションの案件を受けた場合、「誰かアクセスした=そのままデータベースにアクセス」なんてものを作ったら落第です。そのときは問題なく動いて見えても、いずれ苦情が来るのはほぼ間違いないでしょうから。 データベースアクセスにはコストがかかります。WebサーバーからSQLサーバーに接続して問い合わせ、データを受信するのですから、サーバーの負荷云々以前に「アクセスにかかる時間」というコストがかかるのです。また昨今のクラウドサービスでは、データベースアクセスごとに課金されますから、現実的に「お金」というコストもかかります。 ですから、通常は「データの書き込みはデータベース直通、データの読み込みは初回にキャシュを作り、2回目以降はキャッシュを使う」というのが基本となっています。そのためのキャッシュのライブラリなどもいろいろと用意されています。 せっかくPHPとSQLの勉強を兼ねて作るのですから、どうせなら「キャシュ処理」についても勉強して実装してみてはいかがでしょう。もし、ブログの人気があがってアクセスが急増しても慌てずに済みますよ。
- Taiyonoshizuku
- ベストアンサー率37% (183/489)
問題ないよ。 >拡張子がhtmlでphpのものはほとんど見かけませんし、 これはあてにならないよ。拡張子なんて飾りだから実際は拡張子が.phpでもperlで動いているかもしれない。 設定次第でいくらでも変えられる。 アクセス解析するのに都度DBアクセスさせないとなると、ファイルに落とし込んでどこかのタイミングでinsert? 馬鹿らしいよ。 ファイルに書き込むのだってオーバーヘッドあるし、どこかのタイミングでinsertなりさせるのも面倒だし。 ロリポップのような格安サーバだってスペック詳細はしらないけど、問題にならないでしょ。 アクセスが増えてあまりにも負荷がかかったりしたら管理者からなにかしら来るかもしれないけど。
- lefty17
- ベストアンサー率21% (46/214)
アクセス数にもよります。 1日に何万回のアクセスがあるようなサイトだと、 ページアクセスのたびに毎回DBにアクセスするような作りだと負荷が上がります。 ただ、個人のページでそこまでアクセス数が多くないのであれば、どちらでもあまり変わりません。