哪个在RavenDB中效率最高:许多小文档或单个大文档?

时间:2012-06-21 16:20:34

标签: performance ravendb database-performance processing-efficiency

我需要在RavenDB中存储大量(~50,000)小块数据。当我读回这些数据时,我每次都会阅读这些数据。在写作时,我可以写完全部或每个部分。

数据如下所示:

public class Item
{
    public int  Id    { get; set; }
    public long Value { get; set; }
}

我可以轻松地将其作为文档包装器存储在单个Dictionary<int, long>而不是Item个对象的集合中。

在RavenDB中哪些方法更有效?

如果我的数据集增加到~500,000,效率差异是否会被夸大(在阅读案例中)?

1 个答案:

答案 0 :(得分:2)

这些数据是什么?他们是如何联系的?你经常读这套装?你会有多少套不同的套装?他们多久会改变一次?你一直都需要它们吗?

问题是此模型中的事务边界是什么。只要你改变它的一部分,整个事物在某种程度上都会发生变化,将它放在一个文档中是有意义的。

当你可以缓存它时,增长过大的文档不是问题 - 查找积极缓存。