ホームページ > バックエンド開発 > PHPチュートリアル > 大量のユーザー ログ データを統計的にフィルタリングする方法

大量のユーザー ログ データを統計的にフィルタリングする方法

WBOY
リリース: 2016-06-23 14:01:46
オリジナル
1222 人が閲覧しました

たとえば、100W ユーザー

現在のテーブルは次のように設計されています:
テーブル a は 100W ユーザーの基本情報 (uid は一意です)
uid、名前、地域、サービスプロバイダー....


テーブル b はユーザーデータごとに約 100 エントリ、つまり 100W*100=1 億データ。各データの内容には (ユーザー ID、開始時刻、終了時刻) が含まれます。
uid、time1、time2
uid、time1、time2
...

要件: 24 時間のユーザー数をカウントし、それに基づくことができます。特定の地域と特定のサービスプロバイダーの統計


ディスカッションへの回答 (解決策)

24 時間のユーザー数は何を意味しますか? 例をあげましょう。

1 億のデータは多すぎるわけではありませんが、合理的な指標を確立する必要があります。

これを 1 日 1 回実行し、統計結果をテーブル レコードに入力し、次回は毎回カウントせずにテーブルから直接読み取ります。



これを 1 日 1 回実行し、統計結果をテーブル レコードに入力し、毎回カウントせずに次回からテーブルから直接読み取ります。

インデックスの構築とデータのキャッシュはどちらも最適化手法です

24 時間のユーザー数は何を意味しますか? 例をあげてみましょう。
例: 1.txt
uid オープン時間 クローズ時間
1 00:00 10:00
1 16:00 16:30
1 17:20 17:10
...
2.txt
uid オープン時間 クローズtime
2 01:01 01:26
...
1 ファイルは 1 ユーザーを表し、各ファイルには約 100 行のデータが含まれます。切り替え時間に基づいて 24 時間のオンライン ユーザー数をカウントします


1 億のデータは多すぎるわけではありませんが、合理的な指標を確立する必要があります。
インデックスとはどういう意味ですか?テーブルフィールドのインデックス?現在、データを別々のテーブルに保存し、各テーブルにフィールド インデックスを追加しています。これを 1 日 1 回実行し、次回は統計結果をテーブル レコードに追加します。すべての統計を毎回実行する必要はなく、テーブルから直接読み取ります。
ああ、ありがとう!サブテーブルの内容をテーブルに保存し、次回はこの統計テーブルから直接データを読み取ります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート