簡體   English   中英

管理內存中大量數據的最佳方法?

[英]Best way to manage a large amount of data in memory?

我正在嘗試找到使用C#在不訪問數據庫的情況下管理內存中大量數據的最佳方法。 (當數據庫成為最終信息時,數據庫將僅用於存儲其中的部分信息)

當我說“海量數據”時,我說的是數百兆字節,我將要管理一個復雜的結構,而不僅僅是像具有數百萬條記錄的表之類的東西。

我需要盡快在其中進行搜索,並且當它們過時時,我必須能夠刪除其中的一部分。

幸運的是,我可以將這些數據划分為不需要以某種方式關聯的組...因此,我不需要查找或更新數以百萬計的行,但是可以像查找50,000個其他組之類的東西進行搜索,添加和刪除該組中的數據,並在該組過時刪除所有組。

我有一些項目已經在管理內存中的數據,但是沒有什么項目如此之大,所以我不知道這些方法是否也適用於這種情況:-我使用了.Net緩存對象,但是我從未使用過超過10或20兆字節-私有靜態列表數據= new List(); 在上面我以xml格式存儲了幾組數據,但是我從來沒有使用過幾個兆字節的數據表對象(一個用於組),並且在最后一種情況下,我從來沒有使用超過10兆字節的對象,並且在管理訪問,因為數據表不是線程安全的

處理這種情況的最佳方法是什么? Windows或.Net框架是否存在某種限制,可能導致我遇到問題?

您應該可以使用內存將數據存儲在數據結構中並進行數據處理。 代價是該內存將無法用於同一服務器上運行的其他應用程序。 同樣,當您嘗試將數據從內存提交到磁盤/ DB時,大數據花費的時間也更多。

根據您的數據,必須定義結構。 如果數據不是相互關聯的,則應為每個實體創建不同的對象。

您還需要制定一種策略來更新/刷新緩存。 可以是每小時,每天,每周;或者 根據您的需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM