将MongoDB 2.4与mongoDB .NET驱动程序3.2配合使用
我有一个三千万条记录的收藏。
var visits = new MongoHelper<CampaignVisitLog>()
.GetCollection().AsQueryable().Count(t => t.campaignId == campaignId);campaignId已编入索引。根据campaignId的许多条目,返回计数需要30秒到几分钟的时间。
怎样才是计算这些收藏品的正确方法呢?
发布于 2016-03-24 17:43:40
我有一个三千万个条目的集合。
除了优化整个查询之外,你不能认为你会得到数以百万计的项目的快速响应。
如果您正在执行其他查询来获取统计数据,也许是时候安排这些计算,并使用一些异步服务(例如,Windows服务、Windows计划任务、Quartz.NET...)来执行它们,并且也可以异步地获取它们的结果。
您可以使用MongoDB来存储计算服务结果,也可以使用更具体的解决方案:服务总线(即RabbitMQ、Azure service Bus、NServiceBus...)。
发布于 2016-05-25 20:58:45
MongoDB C#驱动程序病了。
LINQ查询始终转换为聚合框架管道。
var pipeline = [ { "$group" : { "_id" : 1, "__result" : { "$sum" : 1 } } }]
db.test.aggregate(pipeline)这将导致在服务器上进行完全集合扫描,因为LINQ查询未指定任何约束。
发布于 2016-03-24 20:21:33
确保你有足够的内存在内存中存储你的索引。
https://docs.mongodb.org/manual/tutorial/ensure-indexes-fit-ram/
https://stackoverflow.com/questions/36196738
复制相似问题