【问题标题】:Best way to save/load large amout of data in a .Net application?在 .Net 应用程序中保存/加载大量数据的最佳方法?
【发布时间】:2011-01-25 19:20:05
【问题描述】:

为 .Net 4.0 应用程序保存大量数据的最佳方法是什么?

现在我正在使用列表并序列化到“用户数据”文件夹中的文件,并且工作正常,但我想知道是否有更好/更快的方法来保存/加载大量数据。

我保存的数据只包含很多单词,比如文档。

数据的大小几乎是 1 mb。

【问题讨论】:

  • 这一切都取决于目的。数据是如何使用的。如果您的问题包含对您正在尝试做的事情的更详细说明,那么您更有可能得到想要的答案。
  • 我有很多单词要显示在网格/列表框中。
  • 1mb 的数据并不是很多数据

标签: c# save load


【解决方案1】:

这实际上取决于您的应用程序的类型。我不会使用任何类型的 SQL 数据库来加载和保存我不需要查询或转换的数据的操作。将您的对象图映射到关系模型所花费的时间是不值得的。 此外,由于与数据库相关的开销(连接管理和映射),我不相信它会比简单的序列化更快

我最近的经验是使用 BinnaryFormatter,它取得了很好的效果(文件 ~ 15mb)。更糟的是,您始终可以编写自己的格式化程序。

【讨论】:

    【解决方案2】:

    这取决于您的数据以及您将其存储在应用中的方式。

    但是所有这些 NoSQL 存储系统都有可能或者只是将纯二进制数据放入一个文件中。

    【讨论】:

      【解决方案3】:

      当您说“大量 [原文如此] 数据”时,您的具体意思是什么?兆字节? 1TB?

      数据到底是什么?

      如果它是一组帐户记录,它很可能属于某种数据库;如果是一组图像或文字处理文档,也许不是。

      【讨论】:

      • 大小为 1 mb,只包含很多单词。
      • 如果只是文字,为什么不将它们以纯文本形式以选择的编码形式写出来。您可以每行写一个单词,或者如果每行需要多个单词,则将其设为制表符分隔 (HT)。纯文本的优势在于它是人类可读/可编辑的,并且几乎任何东西都可以轻松访问。
      【解决方案4】:

      如果您想要快速访问,一种方法是序列化为哈希表,并将其缓存。在读取和写入之间...

      这里的问题当然是版本控制、命名空间的更改(然后您将无法轻松反序列化......)、死锁、并发等......

      如果您将文件保存为 XML/JSON 更好,当您将其读入内存时将其保存到哈希表中...以便快速访问...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-17
        • 1970-01-01
        • 2010-09-09
        • 1970-01-01
        • 2021-04-19
        • 2010-09-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多