【问题标题】:What is the best way to backup large objects?备份大型对象的最佳方法是什么?
【发布时间】:2014-01-01 06:48:38
【问题描述】:

我有一个包含大约 10,000,000 条记录的对象(列表),我想将它们实时保存到磁盘(或其他地方?)并在我的应用程序启动时加载它们(以防它崩溃或其他情况) )

什么是快速完成的最佳方法?

【问题讨论】:

    标签: c# performance real-time


    【解决方案1】:

    使用Sqlite 将其保存在磁盘上的全功能 ACID 数据库中。

    没有服务,只有您拥有的库和您在磁盘上创建的文件。

    【讨论】:

    • 这有什么特别之处?我可以编写一个简单的二进制文件并在需要时读取。请放点光。
    • 它是全功能的 ACID 数据库,这意味着您已经内置了对数据和数据流的原子性、一致性、隔离性和持久性的支持。如果你自己做,你必须自己实现可靠性功能。
    • 非常感谢。我会读的。您建议阅读 c# 中的数据库吗?会有很大帮助。谢谢
    • @Naresh:查看这篇文章,例如针对 C# 中的 SQLite 使用:codeproject.com/Articles/22165/…
    【解决方案2】:

    正如 Tigran 所回答的,如果您需要完整的数据库或只想对数据执行更改,请选择 Sqlite 或 SQL Server Compact

    但是,如果您只想保存和恢复整个列表,您可以使用serialization 将其保存到文件中。

    【讨论】:

    • 序列化如何处理这么多的记录?在速度方面。一切都应该是实时的。
    • 您的记录有多大?
    • 要将 10000000 个整数写入普通 HDD 上的文件,我的机器大约需要 6 秒。但是请记住,您可以使用 TPL 执行序列化,而不会阻塞您的主线程。
    猜你喜欢
    • 2017-04-15
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多