人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

phpとmysqlについて。

アクセスカウンターや、アクセス解析を作成する場合、
小さく1サイト分の設置なら
テキストでデータを保存しておけばいいのですが、
複数のサイトを解析する場合(例えば1000個)、
DBにデータを保存する方が、管理が楽だと思います。

ただ、ページが表示されるたびに
DBへカウントなどをすると思うので、
とてつもない負荷がかかる気がするのです。

レンタルカウンターやレンタルアクセス解析などは、
このあたりの負荷をどう軽減しているのでしょうか?

それとも、それほど多大な負荷ではない、ということなのか気になります。

以前「mogura」というアクセス解析(mysql/php)のフリーソフトを使ったところ、
大量のアクセス数があるサイトだと、
とんでもなく重くて参ってしまったことがありました。。。


1000個のサイトを、一括で管理画面で管理することを前提として、
phpとmysqlでアクセスカウンターや解析を作成する方向で考えているので、
負荷にかんするアドバイスなどをいただけますと助かります。

●質問者: onigirin
●カテゴリ:ウェブ制作
✍キーワード:MySQL PHP アクセスカウンター アクセス数 アクセス解析
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pahoo
●28ポイント

アクセスカウンターですが、これはテキストファイルに格納しているケースが多いですね。

そのサイトのURL(またはURLをハッシュ化した値)をファイル名としておけば、検索するオーバーヘッドが少なくて済みます。「fopen→ファイルを読む→加算する→ファイルを書き戻す」という手順で実現できます。


アクセス解析ですが、まず、アクセスログをサイト別のテキストファイルに納めます。アクセスカウンターと同様にサイトのURLをファイル名として、アクセスがある度に、必要な情報を追加していくだけです。

問題は、アクセス解析の計算処理です。

アクセスログが大きいとそれなりに時間がかかるので、たとえば1日1回、バッチ処理(cronを走らせる)で計算プログラム(PHPで作ればよい)を動かします。サイト数が1000個なら、たとえば100個ずつ計算スケジュールをずらしてcronを走らせればいいでしょう。


リアルタイムでアクセス解析をしたり、ログの検索処理を行うのであれば、MySQLのようなDBMSが必要になりますが、経験されている通り、莫大なマシンパワーを必要とします。

上述のように、バッチ処理で済むような要件に納めるのが肝要かと存じます。


ちなみに我が家のホームページのトップページにあるアクセスカウンタと、アクセス状況は、1日1回、夜間バッチで PHP スクリプトを動かし、Apacheのアクセスログを解析し、結果をXMLファイルの形で生成しています。

◎質問者からの返答

どうもありがとうございます。

リアルタイムでなければ、テキストファイルでの管理がよさそうですね。

現在は、例えば「忍者アクセス解析」などのような、

リアルタイムでのリンク元などもチェックし、

半永久的にデータを残したいので、

DBで考えて悩んでいます・・・。


2 ● hijk05
●42ポイント

>レンタルカウンターやレンタルアクセス解析などは、

>このあたりの負荷をどう軽減しているのでしょうか?

テキストにアクセスログのような形式で一時保存します。

定期的にバッチプログラムを走らせて、DBに格納します。

必要なくなったアクセスログを削除します。

◎質問者からの返答

どうもありがとうございます。

すべてまずはテキストで保存しているのですね。

生ログみたいなものですね。

DB処理は、後から一括で行う、というのは考えが巡りませんでした。

勉強になります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ