0

OpenX や DoubleClick for Publishers (以前の Google アド マネージャー) などのオープン ソースの代替手段を提案したにもかかわらず、特注の広告システムを作成するように依頼されました。

クリエイティブのアップロード、ポジションの作成、クリエイティブをポジション内に配置するメカニズムなど、システムの基本的な設定が完了しました。ただし、私が行き詰まっているのはインプレッションとクリックの追跡です。

現時点では、インプレッションとクリックはクリエイティブと共に保存されますが、これはインプレッション/クリックをクエリできないことを意味します。たとえば、日付yと日付zの間に位置xにあったインプレッション数を見つけることができません。

その種のデータを保存するにはどうすればよいですか?私の理論では、クリエイティブ ID、位置 ID、およびタイムスタンプをデータベース テーブルに格納するというものでしたが、サイトのトラフィック量を考えると、非常に大きなデータベースが非常に短時間で作成されてしまいます。

誰かが私に1つか2つのポインタを与えることができれば、それは素晴らしいことです.

4

1 に答える 1

1

「非常に大規模なデータベースを非常に迅速に」とはどういう意味ですか?2つのintunsignedおよび1つのタイムスタンプフィールドに対してそれぞれ4バイトは、100万行に対して1200万バイトです。

懸念事項が数千または数億の行数である場合は、いくつかの提案があります。

  1. idフィールドに整合性制約を設定しないでください-代わりにアプリの整合性を確保してください
  2. 古いデータをプライマリデータベースまたはセカンダリレポートデータベースのアーカイブテーブルにアーカイブ(および削除)するためのストアドプロシージャを記述できます。
  3. プライマリトラッキングテーブルのデータを更新しないでください
  4. (ポイント2のように)アーカイブする場合は、一度に1行ずつ移動/削除する方法でアーカイブします。

データベーステーブル以外の方法でこれを実行しようとするとは思いません。ログファイルを生成した場合でも、それを使用して意味のある分析を実行できるようにするには、ログファイルをデータベースにインポートする必要があります。

ところで-一意のIDフィールドとIPアドレスフィールドも追加します。これにより、100万行で最大2000万バイトが必要になります

于 2010-05-10T16:23:00.223 に答える