需要为我的应用程序保存很多记录......我应该使用本地数据库instad吗?

时间:2011-05-28 04:46:02

标签: c# .net xml sql-server-ce local-database

我即将开始为Windows开发“time machine”。我需要在表格中存储大量记录。每次执行备份时,我都会写入大约50,000条记录,因为这是我的计算机中有多少文件(每条记录与存储文件无关。记录将包含每个文件所在的路径)无论如何我不喜欢我知道我是否可以使用XML来存储我的记录,因为我的查询不会很复杂,而且它更容易部署而不是创建本地数据库,我不知道它是否会更高效,因为即使查询将会很简单我将处理大量数据。此外,我不知道本地数据库是否可以大于2GB,我估计如果经常使用一年,数据库将大约为3 GB。

我更喜欢使用XML并使用Xpath进行查询,以便更轻松地部署我的应用程序。但是如果创建一个本地数据库变得更有效率并且XML会减慢我的应用程序因为我有这么多记录,那么我将创建一个本地数据库。任何其他建议都会有所帮助,也许我还需要做其他事情。

3 个答案:

答案 0 :(得分:6)

看看SQLite

这是嵌入式但功能强大的数据库。您不需要安装SQL Server实例 您可以将此数据库视为具有特定API的文件。 API允许您对此文件运行SQL查询。

答案 1 :(得分:2)

SQL Server 2008 R2 Express允许最大10GB的数据库 - 因此考虑到您的估计空间需求,这可能值得考虑。

将数据存储在某种形式的数据库中比使用XML更好 - 因为后者将迅速增长到这样的大小,以至于查询将变得非常缓慢和内存密集。

答案 2 :(得分:1)

当您尝试访问数据时,使用XML存储大量数据将需要大量内存使用。在存储空间使用方面,它也不是很有效。我建议使用SQL版本。您可以使用Microsoft SQL的一个Express版本,也可以使用MySQL等开源SQL版本。

当您考虑存储大量信息时,您需要查看关系数据库。如果您真的不想这条路线,可以考虑将每个备份存储在自己的XML文件中。这样可以提高可移植性,并且在访问存档数据时可以减少内存占用。