繁体   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