我有Mongo数据库,大小为30 GB。 在Windows服务器中我有限的RAM空间 - 10GB 使用MongoDb C#驱动程序我正在尝试执行
query = (from da in collection.AsQueryable<FullTune>()
where da.Letter.Equals(Letter.ToUpper()) && da.Styles.Equals(Style)
select da).OrderBy(a => a.Title).Take(50).ToList();
它占用10GB内存和挂起服务器,使用Mongo控制台查询相同,工作正常,没有使用RAM。
如何解决这个性能问题。
答案 0 :(得分:1)
据我所知,LINQ provider不支持.Equals()
,可能需要在内存中执行它。
另外,作为样式指南,我通常不会像您一样将LINQ查询语法与LINQ扩展方法样式混合在一起,而是希望保持一致。
无论如何,我建议您将查询更改为以下内容:
result = collection.AsQueryable<FullTune>()
.Where(ft => ft.Letter == Letter.ToUpper() && ft.Styles == Style)
.OrderBy(ft => ft.Title)
.Take(50);