【发布时间】:2014-02-05 07:10:07
【问题描述】:
我正在尝试寻找在不访问数据库的情况下使用 C# 管理内存中大量数据的最佳方法。 (当它们成为最终信息时,数据库将用于存储这些信息的一部分)
当我说“大量数据”时,我指的是数百兆字节,我希望管理一个复杂的结构,而不仅仅是像一个包含数百万条记录的表。
我需要尽快在它们内部进行搜索,并且我需要能够在它们过时时删除其中的一部分。
幸运的是,我可以将这些数据分成不需要以某种方式关联的组...所以我不需要在数百万之间查找或更新一行,但可以在 50,000 之间查找一个组其他,搜索,添加和删除该组中的数据,并在该组过时时删除所有组。
我有一些项目已经在内存中管理数据,但没有那么大,所以我不知道这些方法是否也适用于这种情况: -我使用了 .Net 缓存对象,但我从未使用过超过 10 或 20 兆字节的数据 -私有静态列表数据=新列表();我在上面存储了 xml 格式的数据组,但我从来没有使用超过几兆字节的数据 -datatable 对象,一个用于组,在最后一种情况下,我从来没有使用超过 10 兆字节的数据,而且我在管理访问时遇到了问题,因为数据表不是线程安全的
处理这种情况的最佳方法是什么? Windows 或 .Net 框架有什么限制可能会给我带来问题吗?
【问题讨论】:
-
这是一项复杂的任务,如果你真的觉得不需要自己编写代码,我认为你应该看看一些现有的可以提供此功能的内存数据库
-
如果发现可靠的产品...内存数据库是个好主意...至少需要考虑的东西,我不需要写一些具体的东西。我看到其中有些有点贵,有些是免费的,但多年来一直处于测试阶段。我看到 SqlLite 也可以在内存中工作......也许对我来说是一个很好的解决方案。
标签: c# caching memory large-data