gpt4 book ai didi

c# - 我应该使用本地数据库还是 XML 文件?

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:58 28 4
gpt4 key购买 nike

我应该为我的应用程序选择持久存储,因此我应该决定是选择本地数据库(在 SQL Server Compact 3.5 数据库中)还是 XML 文件。基本上,应用程序需要非常频繁地更新表中的某些数据:该表的每一行都包含一个 GUID(作为主键)、两个 DateTime。列,两个 TimeSpan列和四个 double列。

这张表可能包含数千行,其中一些行(约 10%)更新非常频繁,其中每次更新都包含以下操作:

  • 检索与 GUID 相关的当前值
  • 将这些值与一些数据进行比较以获得新值
  • 用新值覆盖当前值。

被更新的行(以上10%)并不总是相同的,但它们可能在程序执行过程中逐渐变化。

如果我将此表存储在 XML 文件中,应用程序一启动,数据访问层就会将数据从 XML 文件加载到 Dictionary<Guid, ...> 中。以获得更好的性能。然后当应用程序终止时,XML 文件被字典中更新的数据覆盖,因为我相信没有办法更新 XML 文件的特定部分。这是我目前使用的方法。

  1. 使用本地数据库而不是 XML 文件有什么优势?我相信如果我使用本地数据库,我可以不用 Dictionary<Guid, ...> ,那么数据访问层会更简单。
  2. 与当前“基于 XML/字典”的方法相比,本地数据库有哪些缺点?

最佳答案

如果您的应用程序崩溃,您的 XML 文件可能无法保存。或者更糟的是,它可能会被损坏。可以通过将程序包装在 try/finally 中并在 finally 中编写 XML 来减轻此错误,但这仍然会打开您直到破坏 XML。

当你使用数据库时,你保证你的事务是原子的——这意味着写入要么完全完成,要么根本不发生。这是使用数据库的主要好处。

但是,使用 XML/Dictionary 方法仍然非常快,因为它都是内存中的事务。只要您不关心数据完整性,这是一种非常可行的方法。

就复杂的数​​据访问层而言,这两种方法都可能存在问题。只需将该层与您的业务逻辑分开,它就不会影响您的选择。

关于c# - 我应该使用本地数据库还是 XML 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557994/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com