内存中的虚拟数据库

时间:2010-02-19 13:21:09

标签: c# asp.net memory iis-7 .net-2.0

想象一下:

我有一个57,000个项目的表格,我经常在我的应用程序中使用它来找出目标群体等内容。

而不是每天查询数据库300,000次,对于几乎不会更改数据的表,有没有办法将其信息存储在我的应用程序中并直接在内存中轮询数据?或者,我是否必须为每一行创建某种自定义数据类型并迭代测试每一行,以检查我想要的结果?

经过一些谷歌搜索,我能找到的最接近的是内存数据库

谢谢你, - theo

4 个答案:

答案 0 :(得分:1)

SQLite支持内存表。

答案 1 :(得分:1)

对于您将要查询的57,000个项目(并且希望立即可用),我不建议实现简单的缓存。对于那么多项目,我要么推荐一个分布式内存缓存(即使它只是一台机器),比如Memcache,Velocity等,或者你最初想要使用内存数据库。

此外,如果您使用任何完整的ORM(如NHibernate),您可以实现它以使用客户端来分发缓存工具,几乎没有任何工作。许多主要客户都有NHibernate实现,包括Memcache,Velocity和其他一些。这可能是一个更好的解决方案,因为您只能缓存它真正使用的数据,而不是 可能 所需的所有数据。

答案 2 :(得分:0)

阅读Caching

听起来这是应用程序级数据而不是用户级别,因此您应该查看“Caching Application Data

以下是some samples of caching datatables

答案 3 :(得分:0)

如果您只需要始终使用相同的密钥查找行,那么简单的Dictionary<Key, Value>就可以满足您的需求。对我来说,除非每行包含大量数据,否则57,000个项目听起来并不是那么多。但是,如果您需要按不同的列进行搜索,那么内存数据库很可能是最佳选择。