我想要一个带观景台的导览区。目前我担心演出。我希望它是实时的,所以如果有人浏览网页,我想增加计数器。
我担心是因为,如果我每天有1000000次的浏览量呢。所以我不得不打我的数据库1000000次,以增加计数器。(仅在一个指南上!)
我有问题要计算性能命中率。这是一个大的性能命中还是一个小的性能命中来更新整数?
我的解决方法是缓存视图并只提交每个x视图。这将使db的命中率减少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可以很快地处理这些问题,并且可以很好地完成你的工作。如果你到了滥用计划的地方,我们会礼貌地让你知道;)

关于mongodb - Mongodb - 数据库命中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12006956/

10-11 11:45