1

我需要在RavenDB中存儲大量(〜50,000)的小塊數據。當我讀回這些數據時,我會每次都閱讀這些內容。寫作時,我可以寫出全部或每件作品。哪個在RavenDB中最有效:大量小文檔或單個大文檔?

的數據是這樣的:

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

我可以很容易地這一個Dictionary<int, long>圍繞存儲爲文檔包裝而不是Item對象的集合。

哪種方法在RavenDB中更高效?

如果我的數據集增加到約500,000,效率的差異是否會被誇大(在閱讀的情況下)?

回答

2

這些數據是什麼?它們如何連接?你多久閱讀一次這套書?你會有多少套不同的套裝?他們多久改變一次?你一直需要他們嗎?

問題是你的事務邊界在這個模型中。只要當你改變它的一部分時,整個事情就會發生一定程度的變化,所以把它放在一個文檔中是有意義的。

當您可以緩存文件時,增長過大的文檔不是問題 - 查找積極緩存。