在数千个小文件中存储XML数据

时间:2012-04-25 12:16:25

标签: xml sync

将数据存储在数千个单独的文件或几个XML文件中会更好吗?

数据在多个设备之间共享,这些设备定期更新其中的各个部分。为了最大限度地减少冲突,每个对象都将存储在以GUID命名的单个文件中。

例如,可能有1000个项目存储在1000个XML文件中,500个类别存储在另外500个文件中。

OmniFocus和1Password等应用程序目前使用此方法的变体。 OmniFocus压缩了一些文件,但仍然受到webDav驱动器性能问题的影响。

用户通常拥有数千个文件,其中一些文件有数万个文件。

在我的特定情况下,数据存储在Dropbox等服务上,因此无法使用中央数据库解决方案。

修改数据的设备包括iOS,Android,Mac和PC。

文件不一定需要是XML。似乎是一种存储数据的便捷方式。

我担心这么多文件的性能和其他问题。我已经有一个使用十几个文件的工作解决方案(分为主文件和定期更改文件)但是在这个其他解决方案中有许多边缘情况,我想知道每个UID一个文件是否更清晰。

思想?

2 个答案:

答案 0 :(得分:2)

很抱歉,但答案是:这取决于。使用一些大文件可以更轻松/更快地完成某些操作,使用大量小文件可以更轻松/更快速地完成某些操作。

大文件往往意味着您经常会解析您不需要的数据,并且会分配内存来保存您不需要的数据。

小文件意味着您需要某种方式来跟踪所有文件并找到适合给定操作的文件。

如果没有XML数据库,我不想处理超过1000个文件。

答案 1 :(得分:0)

通常我建议将数据加载到某种数据库中。这使得搜索,操作和提取其他格式变得更加简单。

话虽如此,我曾经不得不设计一个依赖于数千个CSV文件的应用程序,总计数百万行数据。其中一个设计目标是保持数据的原始格式,因此协助搜索每个文件都加载到Solr索引中。

如果你还没有看到Solr,我强烈推荐它。对数据建立索引后,它会提供基于JSON的REST API来搜索您的内容。索引很容易保持最新和非常快。