2009-04-14 16 views
2

私はツリー構造のデータセットを持っています。現在、これらのデータをバイナリファイルに保存しています。欠点は、これらのデータのソート、フィルタリングが非常に難しいことです。それだけではなく、データサイズが大きい場合、ハードディスクからメモリに読み込むのが非常に遅いです。ツリー構造データをXMLに変換する - パフォーマンス上の懸念

私はこれらのツリーのようなデータをXMLファイルに保存することを考えています。

  1. XMLが
  2. XMLの操作がうまくコミュニティによってサポートされているフィルタリングやデータ操作のためのライブラリに組み込まれてしまったので、今、私は私自身のデータ構造操作をサポートする必要が一方で、私はこれをしたい理由は、ある

XMLの.Netサポートが与えられているので、バイナリファイルからのクエリデータではなく、XMLからデータをクエリする方が高速です(読み込み速度に関して)のだろうか?スイッチを作るのに私の利点はありますか?プログラミングの努力が進むにつれ、XMLは自分のツリーデータ構造を打ち負かすが、ロード速度はどうなるのだろうか?

答えて

1

経験則として、データを管理するための最小または最速の方法であるXMLはありません。

あなたの説明では確かに言いたいことはありませんが、リレーショナルデータベースを使用する方がよいでしょう。通常、ツリー構造をリレーショナル・モデルにマップすることは難しくありません。 (別の方法は、別の話です...)

+0

非常に簡潔に置かれます。 +1 – Cerebrus

+0

ツリー構造をリレーショナルモデルにマップする...これを行う方法に関するガイドライン? ツリーノードを列とテーブルにマップするにはどうすればよいですか?前者は高度に構造化されていませんが、あとで定義されます。 – Graviton

+0

リンク先の詳細については、こちらをご覧ください:http://www.rockstarapps.com/wordpress/?p=82 注記:深くネストされたクエリを最適化する必要がある場合を除いて、「これを行うには最良の方法は何ですか?」というセクションに達した時点で読書を中断することができます。 –

0

XMLはテキストなので、すべてのデータをテキスト表現にシリアル化する必要があるため、データサイズはおそらく現在のツリーサイズより大きくなります。したがって、ロードは遅くなることもあれば遅くなることもありません。これは現在のロード実装にも依存します。

残りの部分については、データの照会と変更は非常に簡単で効率的ですが、テキストの性質上通常よく実行されるバイナリの実装を超えることはできません。

ツリーデータの変換(表示など)が必要な場合は、XMLが偉大です。XSL Transformationsを使用すると、ほとんどプログラミングを行わずにデータのXML、HTMLまたはテキスト表現を作成できます。デバッグ)努力。

0

パフォーマンスの観点から、XMLはバイナリ構造との競争をほとんど失うことはほとんどありません。しかし、開発と技術的な観点からは、XMLが手に入るというあなたの見解は間違いありません。

@ダンの声明と完全に同意します。 XMLデータ構造のパフォーマンスは、データのサイズが大きくなるにつれて指数関数的に低下します。たいていのアプリケーションは、通常はデータベースに格納されているか、バイナリデータにシリアライズされている非常に大量のデータを処理しないので、その使用は非常に一般的です。

関連する問題