【问题标题】:Need to save a lot of records for my application... should I use a local database instad?需要为我的应用程序保存大量记录...我应该使用本地数据库吗?
【发布时间】:2011-05-28 04:46:01
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    看看SQLite

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

    【讨论】:

    • +1 我没有使用过 SQLite - 但任何占用空间小、API 不错且性能良好的东西都是个好主意。
    • 我认为指向 C# 绑定的指针会有所帮助(由于我对 C# 一无所知,我只能猜测这是正确的:system.data.sqlite.org/index.html/doc/trunk/www/index.wiki
    【解决方案2】:

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

    最好将数据存储在某种形式的数据库中,而不是存储在 XML 中 - 因为后者会迅速增长到查询变得非常缓慢和占用大量内存的大小。

    【讨论】:

    • 放大:XML 可用于数据交换或人类可读性。 XML 的 blob 不是数据库,它只是 xml 的 blob,并且是存储数据以供机器访问和查询的最不可用的方法之一。
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      相关资源
      最近更新 更多