我即将开始为windows开发一台"时间机器"。我需要在一张表中存储很多记录。每次执行备份时,我都会写大约50000条记录,因为这就是我计算机中的文件数量(每条记录与存储文件无关。记录将包含每个文件所在的路径)。无论如何,我不知道是否可以使用XML存储记录,因为我的查询不会很复杂,而且与创建本地查询相比,部署起来更容易数据库,我不知道它是否会更高效,因为即使查询很简单,我也要处理大量数据。此外,我不知道本地数据库是否可以大于2GB,我估计如果定期使用一年,该数据库将约为3GB。
我更喜欢使用XML和Xpath进行查询,这样可以更容易地部署我的应用程序。但是,如果创建本地数据库的效率更高,并且XML会降低我的应用程序的速度,因为我有太多的记录,那么我将创建一个本地数据库。任何其他建议都会有帮助——也许我需要做其他事情。
看看SQLite。
这是一个嵌入式但功能强大的数据库。您不需要安装SQL server实例
您可以将此数据库视为具有特定API的文件。API允许您对此文件运行SQL查询。
SQL Server 2008 R2 Express允许大小高达10GB的数据库,因此,考虑到您估计的空间需求,这可能值得考虑。
将数据存储在某种形式的数据库中比存储在XML中要好得多,因为后者会迅速增长到查询速度非常慢且占用内存的程度。
在尝试访问数据时,使用XML存储大量数据将需要大量内存使用。在存储空间使用方面,它也不是很高效。我建议使用SQL版本。您可以使用Microsoft SQL的Express版本,也可以使用开源SQL风格,如MySQL。
当您考虑存储大量信息时,您需要查看关系数据库。如果您真的不想走这条路,可以考虑将每个备份存储在自己的XML文件中。这将允许更多的可移植性,并且在访问存档数据时会减少内存占用。