簡體   English   中英

Mongodb-數據庫命中

[英]Mongodb - Database hits

我想有一個帶觀景台的指南區。 目前,我擔心性能。 我想實時擁有它,所以如果有人查看該頁面,我想增加計數器。

我擔心是因為,如果我每天有1000000次觀看該怎么辦。 所以我必須打我的分貝1000000次,以增加計數器。 (僅在一個指南上!)

我在計算性能命中時遇到問題。 這是對性能的影響很大還是對更新整數的影響很小?

我的解決方法是緩存視圖並僅每隔x個視圖提交一次。 這將使數據庫命中率降低x倍。 (例如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);
    }

免責聲明:我是MongoHQ的創始人

使用$ inc運算符執行此操作對性能影響不大。 MongoDB有一個很好的方法來做到這一點。

例如,您的查詢可能類似於:

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

Mongo可以非常快速地處理這些問題,並且可以很好地滿足您的工作需求。 如果您到了要濫用計划的地方,我們將禮貌地告知您;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM