.Net App中的高效存储

时间:2010-05-08 22:23:20

标签: c# storage

我正在寻找可用于C#应用程序的大量数据的最快,耗能最少,独立的存储方法。

我最初的想法:

  • Sql:没有。不要孤立
  • 平面文件中的XML:没有。花费太长时间来解析大量数据
  • 其他选项?

基本上我正在寻找的是,我可以加载我的应用程序加载,保存我的应用程序中的所有数据,以及当我的应用程序中的数据更改时只更新存储位置。

6 个答案:

答案 0 :(得分:6)

您可以使用Sqlite之内的进程(无服务器)数据库,如Sql Server Compact

答案 1 :(得分:3)

  

Sql:没有。不要孤单

这取决于你所说的“独立”......一些DBMS 独立而且不需要服务器:

  • SQL Server Compact Edition
  • SQLite的
  • 其他基于文件的DBMS ......

答案 2 :(得分:1)

二进制序列化器?有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/72hyey7b(VS.71).aspx

这有点像xml序列化程序,虽然它是二进制数据。它通常要小很多。

但是,您还需要考虑其他事项:#

  • 数据应该是人类可读的吗?
  • 其他系统/编程语言是否应该能够轻松解读它?
  • 多个用户是否存在并发问题?
  • 您是否需要以某种方式索引或搜索数据,或者只是将整批数据重新加载到内存中?

答案 3 :(得分:1)

大到多大?在解除XML之前,请仔细检查您对XML解析性能的假设 XML很好的原因是因为您可以使用文本编辑器修补数据。 用二进制存储不能轻易做到这一点。

此外,SQL Server还有一个嵌入式版本。 It's called "Compact Edition",它可以嵌入到您的C#应用​​中。免费许可证。 Read more.

答案 4 :(得分:0)

我不确定你在寻找什么,但如果我需要在C#中使用一些简单的平面文件存储,我通常只使用linq2csv。它的快速,高效和类型安全,还有一个额外的好处,你可以编辑excel(或其他)中的文件,这使得它很容易。虽然它显然不适用于分层或高度关系数据,但它对于简单的表格数据来说非常容易,而且比XML更紧凑。

它提供了非常简单的写入和读取方法,可以轻松地将更改同步到文件系统。

答案 5 :(得分:0)

我认为也许虚拟文件系统可以完成这项工作。例如,请参阅Solid File System。它允许您在文件中创建文件系统,具有某些类似DB的搜索功能。它看起来很适合你的需求。