2011-12-19 16 views
0

私たちは大量のトラフィック、Amazon.comサイズのトラフィックを受信して​​いるサイトだとします。そして、最初の12月以来の総販売数を表示し、カウンタが10秒ごとにajaxを介してリフレッシュするというカウンタをホームページに表示するとします。ライブ統計の保存と表示

これを行うにはどうすればいいですか?

売り上げ合計を表示する集計データベーステーブルがありますが、各小切手はカウンタに+1して10秒ごとにその数値を取得しますか? 10秒ごとに 'sales'テーブル全体をCOUNT()しますか?外部のAPIはありますか?統計情報をオフにして、そこからAjaxを引き出すことができますか?あなたのサイトがECOMMベースの場合

は、あなたが販売を行っているという点で、あなたはどこかに販売トラッキングテーブルを持たなければならない、おかげで

答えて

0

何をしても、10秒ごとにすべてを再カウントしないでください。なぜ10秒ごとにデータをカウントするcronjobを持っていないのですか?それは現在の時間 - 10秒かかる可能性があり、スレーブデータベースでは現在のカウントとの差を加えますか?

まだ奇妙な10秒の音。毎分、mm?

+0

Cronは秒レベルでスケジュールすることはできません。標準的なcronは細かい粒度になります – Karlson

+0

誰が標準のものを使用していますか? –

+0

それは良い考えのように聞こえるが、スレーブデータベースの代わりに、memcachedに格納することができる。上記の私の記事で説明したように、資金調達/販売のリアルタイム更新が重要だと感じています。 –

1

、あなたは助けることができると思います。ユーザーがサイトにアクセスしたり更新したりすると、データベースのページ数をレンダリングするだけで簡単にレンダリングできます。

IMO、ほとんどの訪問者が本当に気にしないので、この数をajaxする必要はありません。

また、トラフィックが真にアマゾンレベルである場合は、このクエリを読み取り専用(スレーブ)データベースに対して実行することをお勧めします。

+1

私は例としてAmazonを使用していますが、はい、すべての販売履歴を含む販売テーブルを持っています。確かに、Amazonのサイズでサイトをリフレッシュするたびにテーブル全体をカウントするとデータベースにひどい負荷がありますか? memcachedに販売統計情報をキャッシュして10秒ごとに更新する場合を除き、 –

+0

@ user1104791:売上の数は、ユーザーベースにとって本当に重要ですか?もしそうなら、私はたぶん10分ごとに行って、あなたが示唆したようにカウントを生成してmemcacheに格納します。それ以外の場合は30分または1時間ごとに実行します。 –

+0

もっと良い例はおそらく、資金調達のための24時間の特別イベントを開催する大規模な慈善団体でした。視聴者は、増加した金額がリアルタイムで急速に増加するのを見て、彼らにも寄付を促すことができます。 –

1

カウンタテーブルを管理するために、テーブルにトリガを設定します。新しい販売を挿入する場合、合計表は現在の日の行に新しい値を追加します。これはまた、実際に大きなテーブルに問い合わせることなく、歴史的に1日の売上を提供します。

また、今日よりも他の日付に手動で注文を入力することができ、その日に更新された統計情報を取得できます。

Ajaxの部分は、そのサムテーブルへのクエリにすぎません。

関連する問題