我正在编写一个包含以下数据模型的winform程序:
当软件运行时,必须非常快速地访问数据(数据模型的访问速度在每秒50到60之间。
我计划将数据存储从XML文件移动到lite数据库。
我的问题如下:将数据库不仅用于存储,还用于程序执行期间是否现实?我会面临性能下降吗?
答案 0 :(得分:2)
如果您不需要定期更新数据,只需从中读取数据,最好将其保存在内存中。
我们对您的应用知之甚少,因此我们无法在此提供更好的建议。也许在您的情况下,将XML保存在XPathDocument结构中就足够了,这样您就可以使用XPath查询执行快速搜索。
另一种选择可能是,如果您的数据主要是键/值对,则您将XML读入字典,然后在应用中搜索该字典。
但是从数据库中读取,即使是轻量级数据库也不会更快。我能想到的唯一反例是一个读优化的快速NoSQL-DB,比如MongoDB。但即便如此,我的资金也将放在内存数据结构中,以便进行搜索。
答案 1 :(得分:1)
如果您需要快速访问它,我认为数据库不是一个好的选择。即使数据库调用位于同一台计算机上,也始终存在延迟。它有时可能会起作用,但在某些无法控制的情况下会有更高的延迟
我认为您应该将数据保存在内存中以获得足够快的访问权限。
为什么要放弃XML?您是否在保存和加载数据时遇到性能问题或其他问题?