1

私は Play! フレームワーク(2)(Java)、

効率的なコードを書きたいので、次のことを決めるのに苦労しています。

ページが表示されるたびに、Web サイト (example.org)、ページ (/index.html)、および表示された日付を指定するレコードが追加されます。ご想像のとおり、行の量は膨大になります。データを使用するために、Web サイトが「example.org」であるすべての行を選択し、結果をループして日付とその日付のビュー数を含むハッシュ マップを作成し、これを使用してグラフを作成します。

これを行うにはもっと良い方法があるはずです、

たとえば、ビューごとに行を持つよりも、レコードに 1 つのビューを追加して既存のレコードを更新する方が適切です。

任意の支援をいただければ幸いです。

ありがとうございました

4

2 に答える 2

0

これを行うためのより良い方法があるはずです、

WebサーバーはHTMLリクエストをログに記録します。ほとんどの分析システムは、Webサーバーのログを使用します。

学習するためにこれを行っているとおっしゃっていたので、可能な限り最も柔軟な方法で統計を収集しています。

私の唯一の提案は、Webアプリケーションが書き込んでいる統計テーブルからすべてのインデックスを削除することです。統計を生成するための統計テーブルのコピーを作成します。コピーには、必要なすべてのインデックスが含まれます。

このように、更新するインデックスがないため、最速の書き込みが得られます。

必要に応じて、書き込みテーブルにプライマリインデックスまたはクラスタリングインデックスを設定できます。

于 2012-06-12T12:22:10.497 に答える
0

WHERE 句に条件 (日付など) を追加するだけで、結果に対してカウントを実行できます。このようにして、データベースから直接結果を得ることができます。

クエリは次のようになります。

 SELECT COUNT(*) 
 FROM YOUR_TABLE
 WHERE SITE = 'thesite'
       AND DATE = '<date>'
 GROUP BY SITE, DATE
于 2012-06-12T12:14:34.870 に答える