2010-02-19 105 views
3

想象一下以下内容:虚拟数据库

我有57000项,我经常在我的应用程序中使用弄清楚事情就像靶向基团等

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

一些google搜索后,我能找到的最接近的是内存数据库

谢谢你, - 西奥

回答

1

SQLite支持内存表。

+0

谢谢,我已经发现了这个问题,但我总是给你答案 – 2010-02-19 14:21:52

0

Caching

这听起来像这样阅读起来是应用水平数据而不是用户级别,所以你应该看看“Caching Application Data

这里是some samples of caching datatables

+1

缓存问题在于,您只能存储单个值,以避免内存问题。这在搜索结果后会产生一个问题 – 2010-02-19 13:32:16

1

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

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

0

如果您只需要始终使用相同的密钥查找行,那么只需简单的Dictionary<Key, Value>即可。对我而言,除非每行包含大量数据,否则57,000个项目听起来并不那么真实。但是,如果您需要通过不同的列进行搜索,则内存数据库最有可能成为可能。

+1

这不是数据量,而是我需要有条件地访问它的事实,并有许多列检查。 – 2010-02-19 14:21:16

相关问题