2

ビューカウンター付きのガイドセクションが欲しいのですが。現時点ではパフォーマンスが気になります。リアルタイムで欲しいので、誰かがページを閲覧したらカウンターを増やしたいです。

心配です。1日あたりの再生回数が1000000回だとしたらどうでしょう。したがって、カウンターを増やすには、dbを1000000回ヒットする必要があります。(1つのガイドのみ!)

パフォーマンスヒットの計算に問題があります。これは、整数を更新するための大きなパフォーマンスヒットですか、それとも小さなパフォーマンスヒットですか?

私の回避策は、ビューをキャッシュし、xビューごとにのみ送信することです。これにより、dbヒットがx分の1に減少します。(たとえば、x = 100)

現在mongohq.comを使用していますが、定額料金モデルのようです。そのため、ストレージの料金のみを支払い、読み取り/書き込みの料金は支払いません。

私は彼らの価格設定モデルを乱用したくないので、私は尋ねています。

編集:

これが、ビュー数を増やす私のコードです。

public static void increaseViews(String title) throws UnknownHostException,
            MongoException, DbAuthException {
        Datastore ds = DatabaseConnect.getInstance().getDatastore();
        Query<UserGuides> q = ds.createQuery(UserGuides.class).field("title")
                .equal(title);
        UpdateOperations<UserGuides> ops = ds.createUpdateOperations(
                UserGuides.class).inc("views");
        ds.update(q, ops);
    }
4

1 に答える 1

4

免責事項:私はMongoHQの創設者です

$ inc演算子を使用してこれを行うことは、パフォーマンスに小さな影響を及ぼします。MongoDBには、これを行うための優れた方法があります。

たとえば、クエリは次のようになります。

db.pages.update({page: "index"}, {$inc: {hits: 1}})

Mongoはこれらを非常に高速に処理でき、あなたがしていることにうまく機能します。あなたが計画を乱用しているところに着いたら、私たちはあなたに丁寧に知らせます;)

于 2012-08-17T13:57:58.137 に答える