ユーザー、ユーザーアカウント、ユーザーライセンス、ライセンス価格、請求書など、さまざまなデータにMS SQLを使用するWebアプリケーションを開発しています。
ユーザーのシステムのリアルタイム使用状況をログに記録し、毎月の請求に使用する必要があります。たとえば、ユーザーが特定のページ/ URLを取得するたびにログを記録し、取得したページ数に基づいて月末にユーザーに請求します。
これらのログイベントをMS SQLデータベースのテーブルに書き込む必要がありますか?
これらのログイベントをSQL以外の追加専用ログファイルに書き込む必要がありますか?
これらのログイベントをユーザーごとに異なるログファイルに書き込む必要がありますか?
これは特に大規模なWebサイトではありません。たとえば、最大10,000ユーザーが1日あたり平均5つのログ記録可能なイベントを行う=> 50,000イベント/日= 30イベント/分= 18,000,000イベント/年。
どちらかのオプションが実行可能と思われ、明確な利点があるかどうかわからないので、私は尋ねています。
請求可能なイベントに関連付けられたデータは単純です。たとえば、次のとおりです。
- ユーザーID(SQLのユーザーテーブルとの外部キー関係)
- 日時
- 請求可能なページのURL
この質問に対する私自身の答えは次のとおりです。
データベーステーブルにログを書き込むことの利点:
- 関係の整合性:たとえば、ログに記録されたイベントは有効なユーザーIDに関連付けられます(ユーザーIDをテーブル間の外部キーとして定義することにより)
- 課金のために読みやすい:例えば
SELECT COUNT GROUP BY
、ユーザーごとのログイベントの数のカウントを取得する
ログファイルへの書き込みのいくつかの利点:
- より簡単なパフォーマンス:SQLはあまり頻繁に使用されません。たとえば、ユーザーのログインイベントにのみ使用され、ほとんどが読み取りにのみ使用されます
- 管理の簡素化:データベースから削除/アーカイブする代わりに古いログファイルを移動することにより、年末などに古いデータを簡単にアーカイブできます
答えが間違っている場合はお知らせください。または何かの重要性を誇張します。またはいくつかの重要な考慮事項を忘れています。
そして/またはそれが私の答えと異なる場合、あなたの答えが何であるかを教えてください。