0

構成ファイルを XML としてディスクに保存するアプリケーションがあります。クラッシュなどの際にデータファイルが破損するリスクを減らしたい。 一般的に推奨されるのは SQLite の使用のようです。

BLOB を使用して現在の XML 形式を保存することについてどう思いますか? テーブルは次のようになります。

CREATE TABLE t ( filename TEXT, filedata BLOB )

一方で、これは洗練されていないように見えますが、他方では、構成を適切な形式に変換するすべての作業 (および対応するバグ) を回避できます。

4

1 に答える 1

1

非効率に聞こえます。を読み込んで解析しBLOB、構成値を取得し、変更ごとに構成ファイル全体を保存する必要があります。

SQLite データベースに切り替える理由は、トランザクション メカニズムによってクラッシュに対するある程度のフォールト トレランスが得られるからだと思います。各構成ファイルを 1 つとしてBLOB保存する場合は、更新された値を保存するだけでなく、トランザクションが完了する前にファイル全体を保存する必要があります。

さらに、DOM ベースの XML パーサーを使用している場合はBLOB、解析済みの DOM ツリーと DOM ツリーの両方を同時にメモリにロードすることになります。構成ファイルのサイズと数によっては、リソースを大量に消費する可能性があります。

私見では、構成値ごとに行を持つ構成ファイルごとにテーブルを作成することをお勧めします。読み取り/書き込みパフォーマンスが向上し、メモリ使用量が減り、SQLite のすべてのリレーショナル メカニズムを使用できるようになります。

于 2012-06-13T17:50:01.820 に答える