C#winform应用程序的数据模型

时间:2011-07-22 09:17:17

标签: c# database winforms

我正在编写一个包含以下数据模型的winform程序:

  • 数据结构由一组类和子类
  • 描述
  • 存储数据后,我将类序列化为XML文件。

当软件运行时,必须非常快速地访问数据(数据模型的访问速度在每秒50到60之间。

我计划将数据存储从XML文件移动到lite数据库。

我的问题如下:将数据库不仅用于存储,还用于程序执行期间是否现实?我会面临性能下降吗?

2 个答案:

答案 0 :(得分:2)

如果您不需要定期更新数据,只需从中读取数据,最好将其保存在内存中。

我们对您的应用知之甚少,因此我们无法在此提供更好的建议。也许在您的情况下,将XML保存在XPathDocument结构中就足够了,这样您就可以使用XPath查询执行快速搜索。

另一种选择可能是,如果您的数据主要是键/值对,则您将XML读入字典,然后在应用中搜索该字典。

但是从数据库中读取,即使是轻量级数据库也不会更快。我能想到的唯一反例是一个读优化的快速NoSQL-DB,比如MongoDB。但即便如此,我的资金也将放在内存数据结构中,以便进行搜索。

答案 1 :(得分:1)

如果您需要快速访问它,我认为数据库不是一个好的选择。即使数据库调用位于同一台计算机上,也始终存在延迟。它有时可能会起作用,但在某些无法控制的情况下会有更高的延迟

我认为您应该将数据保存在内存中以获得足够快的访问权限。

为什么要放弃XML?您是否在保存和加载数据时遇到性能问题或其他问题?