我需要在RavenDB中存储大量(~50,000)小块数据。当我读回这些数据时,我每次都会阅读这些数据。在写作时,我可以写完全部或每个部分。
数据如下所示:
public class Item
{
public int Id { get; set; }
public long Value { get; set; }
}
我可以轻松地将其作为文档包装器存储在单个Dictionary<int, long>
而不是Item
个对象的集合中。
在RavenDB中哪些方法更有效?
如果我的数据集增加到~500,000,效率差异是否会被夸大(在阅读案例中)?
答案 0 :(得分:2)
这些数据是什么?他们是如何联系的?你经常读这套装?你会有多少套不同的套装?他们多久会改变一次?你一直都需要它们吗?
问题是此模型中的事务边界是什么。只要你改变它的一部分,整个事物在某种程度上都会发生变化,将它放在一个文档中是有意义的。
当你可以缓存它时,增长过大的文档不是问题 - 查找积极缓存。