繁体   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