2013-12-13 56 views
0

我有一个包含大约10,000,000条记录的对象(List),我想将它们实时保存到磁盘(或其他位置?),并在我的应用程序出现时加载它们(以防它崩溃或出现问题)备份大型对象的最佳方法是什么?

什么是快速做到这一点的最好方法?

回答

1

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

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

+0

这是什么特别的?我可以写一个简单的二进制文件并在需要时读取。请抛出一些光。 – Naresh

+0

这是一个富有特色的ACID数据库,这意味着您已经建立了对您的数据和数据流的Atomicity,Consisitency,Isolation和Durability的支持。如果你自己做,你必须自己实现可靠性功能。 – Tigran

+0

非常感谢。我会阅读。你建议阅读c#数据库的任何东西?会是一个很大的帮助。谢谢 – Naresh

2

正如Tigran回答的那样,如果您需要一个完整的数据库或只想对数据执行更改,请使用Sqlite或SQL Server Compact

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

+0

序列化如何处理很多记录?在速度方面。一切都应该是实时的。 –

+0

你的记录有多大? – Lukazoid

+0

要将10000000个整数写入普通HDD上的文件,需要我的机器约6秒钟。但请记住,您可以使用TPL执行序列化,而不是阻止您的主线程。 – Lukazoid

相关问题