[英]Should I use a local database or an XML file?
我应该为我的应用程序选择持久存储,因此我应该决定是选择本地数据库(在SQL Server Compact 3.5数据库中)还是XML文件。 基本上,应用程序需要非常频繁地更新表中的一些数据:该表的每一行由GUID(作为主键),两个DateTime
列,两个TimeSpan
列和四个double
列组成。
此表可能包含数千行,其中一些行(约10%)会非常频繁地更新,其中每个更新都包含以下操作:
更新的行(上述10%)并不总是相同,但在程序执行期间可能会逐渐更改。
如果我将此表存储在XML文件中,则只要应用程序启动,数据访问层就会将XML文件中的数据加载到Dictionary<Guid, ...>
中,以获得更好的性能。 然后,当应用程序终止时,XML文件将被字典中更新的数据覆盖,因为我认为无法更新XML文件的特定部分。 这是我目前使用的方法。
Dictionary<Guid, ...>
,那么数据访问层会更简单。 如果您的应用程序崩溃,则可能无法保存您的XML文件。 或者更糟糕的是,它可能会被破坏。 可以通过将程序包装在try
/ finally
并在finally
编写XML来缓解此错误,但这仍然可以使您更好地修改XML。
当您使用数据库时,您保证您的事务将是原子的 - 这意味着写入将完全完成或根本不发生。 这是使用数据库的主要好处。
但是,使用XML / Dictionary方法仍然非常快,因为它是所有内存中的事务。 只要您不关心数据完整性,这是一种非常可行的方法。
就复杂的数据访问层而言,这可能是任何一种方法的问题。 只需将此图层与业务逻辑分开,它就不会影响您选择的图层。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.