ホームページ  >  記事  >  バックエンド開発  >  10秒ごとにデータを取得して、1日あたり8640回のデータの平均を求めます。何か良いアルゴリズムはありますか?

10秒ごとにデータを取得して、1日あたり8640回のデータの平均を求めます。何か良いアルゴリズムはありますか?

WBOY
WBOYオリジナル
2016-08-27 09:06:541210ブラウズ

以上です。PHP 側では、10 秒ごとにサブサーバーのデータを取得する必要があり、そのたびにデータベースに書き込み、その回数を記録すると、データ量が膨大になってしまいます。サブサーバーが 100 個ある場合、パフォーマンスの問題はさらに大きくなります。redis を書くことも検討しましたが、redis を書くと、json 文字列が十分に大きくなり、平均を計算するのも面倒になります。それを解決するための優れたアルゴリズムはありますか?たとえば、一定期間後の平均値を計算したり、データを保存するときに何か良い提案があれば教えていただければ幸いです。ありがとうございます。

返信内容:

以上です。PHP 側では、10 秒ごとにサブサーバーのデータを取得する必要があり、そのたびにデータベースに書き込み、その回数を記録すると、データ量が膨大になってしまいます。サブサーバーが 100 個ある場合、パフォーマンスの問題はさらに大きくなります。redis を書くことも検討しましたが、redis を書くと、json 文字列が十分に大きくなり、平均を計算するのも面倒になります。それを解決するための優れたアルゴリズムはありますか?たとえば、一定期間後の平均値を計算したり、データを保存するときに何か良い提案があれば教えていただければ幸いです。ありがとうございます。

うーん。私は愚かです、データを受信するたびに回数を記録し、新しいデータが来るたびにそれを古いデータに追加し、最後に合計回数で割ります。

さらに、データを保存するときは、100 台のサーバーで、10 回読み取って 1 回書き込み、合計 10 回書き込むこともできます。 10 秒間に 10 回データベースに書き込むと、データベースに負担がかかりません

質問方法は正しく、データが来るたびにコメントが計算され、その横に合計数カウンターが設定されます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。