0

データを数千の個別のファイルまたはいくつかのXMLファイルに保存する方がよいでしょうか。

データは、データの個々の部分を定期的に更新する複数のデバイス間で共有されます。競合を最小限に抑えるために、各オブジェクトはGUIDにちなんで名付けられた単一のファイルに保存されます。

たとえば、1000個のプロジェクトが1000個のXMLファイルに保存され、500個のカテゴリが別の500個のファイルに保存されているとします。

OmniFocusや1Passwordのようなアプリケーションは現在、このアプローチの変形を使用しています。OmniFocusはいくつかのファイルを圧縮しましたが、それでもwebDavドライブのパフォーマンスの問題に悩まされていました。

ユーザーは通常、数千のファイルの領域にあり、一部のファイルには数万のファイルがあります。

私の特定のケースでは、データはDropboxのようなサービスに保存されているため、中央データベースソリューションは利用できません。

データを変更するデバイスには、iOS、Android、Mac、およびPCが含まれます。

ファイルは必ずしもXMLである必要はありません。データを保存するのに便利な方法のようです。

これだけ多くのファイルのパフォーマンスやその他の問題が心配です。私はすでに12個のファイル(マスターファイルと定期的な変更ファイルに分割)を使用する実用的なソリューションを持っていますが、この他のソリューションには多くのエッジケースシナリオがあり、UIDごとに1つのファイルがよりクリーンであるかどうか疑問に思います。

考え?

4

2 に答える 2

2

申し訳ありませんが、答えは次のとおりです。状況によって異なります。いくつかの大きなファイルでより簡単/より速くなるものもあれば、多くの小さなファイルでより簡単/より速くなるものもあります。

大きなファイルは、多くの場合、不要なデータを解析し、不要なデータを保持するためにメモリを割り当てることを意味する傾向があります。

小さなファイルは、すべてのファイルを追跡し、特定の操作に適したファイルを見つけるための何らかの方法が必要であることを意味します。

XMLデータベースなしで1000以上のファイルを処理したくありません。

于 2012-04-25T15:15:40.287 に答える
0

通常、データを何らかのデータベースにロードすることをお勧めします。これにより、他の形式での検索、操作、および抽出がより簡単になります。

とは言っても、数千の CSV ファイルに依存し、合計で数百万行のデータを持つアプリケーションを設計しなければならなかったことがあります。設計目標の 1 つは、データを元の形式でマスターしておくことでした。そのため、各ファイルの検索を支援するために、 Solrインデックスに読み込まれました。

Solrの動作を見たことがない場合は、ぜひお勧めします。データがインデックス化されると、コンテンツを検索するための JSON ベースの REST API が提供されます。インデックスは簡単に最新の状態に保つことができ、非常に高速です。

于 2012-04-25T18:36:24.013 に答える