たとえば、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 回実行し、次回は統計結果をテーブル レコードに追加します。すべての統計を毎回実行する必要はなく、テーブルから直接読み取ります。
ああ、ありがとう!サブテーブルの内容をテーブルに保存し、次回はこの統計テーブルから直接データを読み取ります。