2

私のプロジェクト (mediafireおよび と同様rapidshare) では、クライアントはファイルをサーバーにアップロードできます。と を使用DB2 databaseIBM WAS web serverJSP as server side scriptingいます。プロジェクトの主な目的であるため、独自の暗号化アルゴリズムを作成しています。

ファイル自体をデータベースに保存するか、ファイルの場所のみを保存するかについて提案が必要です。どのアプローチが最適ですか?

4

3 に答える 3

3

BLOB をデータベースに格納することには、長所と短所があります。

利点

  • BLOB の DBMS サポートは最近非常に優れています
  • BLOB に対する JDBC ドライバーのサポートは非​​常に優れています
  • 「ドキュメント」へのアクセスは、トランザクション内で発生する可能性があります。手動のクリーンアップや「ハウスキーピング」について心配する必要はありません。行が削除されると、BLOB データも削除されます
  • ファイルシステムの制限について心配する必要はありません。通常、ファイルシステムは、1 つのディレクトリに何百万ものファイルを格納するのには適していません。ファイルを複数のディレクトリに分散する必要があります。
  • すべてが一緒にバックアップされます。データベースのバックアップを取れば、すべてが揃っているので、追加のファイルシステムのバックアップについて心配する必要はありません (ただし、以下を参照してください)。
  • SQL 経由で簡単にアクセスできます (FTP やその他のツールは必要ありません)。そのアクセスはすでに存在し、制御されています。
  • 残りのデータと同じアクセス制御。BLOB ファイルへのアクセスを制限するために OS ユーザー グループを設定する必要はありません。

短所

  • OS から直接アクセスできない (コマンドライン ツールを使用してファイルを操作する必要がある場合の問題)
  • Web サーバーなどから直接提供することはできません (これはパフォーマンスの問題になる可能性があります)。
  • データベースのバックアップ (および復元) は、(サイズのため) より複雑です。増分バックアップは通常、ファイルシステムでより効率的です
  • DBMS キャッシュに関する考慮事項
  • 書き込み頻度の高いシナリオには適していません

自分にとってどちらのメリットとデメリットがより重要かを判断する必要があります。

BLOB をデータベースに格納することは常に悪い考えであるという広く普及している前提を共有するつもりはありません。それは依存します - 他の多くの決定と同様に。

于 2013-01-08T13:46:08.407 に答える
2

ファイルをデータベースに保存することは一般的に知られています-特に大きなファイル-それは一般的に悪い考えです。これらの質問には素晴らしい説明があります。

ファイルシステムではなく、データベースにファイルを保存しますか?

DB への画像の保存 - 賛成か反対か?

そして、いくつかの点を強調したいと思います。

  • ファイルを DBMS に保存するとデータが非常に大きくなり、大規模なデータベースは管理が大変です (特にバックアップ)。
  • すべての DBMS ベンダーが独自の BLOB ファイルの実装を行うため、移植性が問題になります。
  • ディスク アクセスと比較して、BLOB フィールドへの SELECT 文に関連するパフォーマンスの低下があります。
于 2013-01-08T13:37:00.667 に答える
0

私の意見は、パス、名前、説明などの関連情報をデータベースに保存し、evtl ファイルを保持することです。ファイルシステムで暗号化されている場合、データベースに比べてウェブスペースが安価であるため、データベースを追加するよりもウェブサーバーを追加してシステムをスケーリングする方が安価です。必要なのは、データベースまたはサーバー名に IP 列を追加することだけです。新しいウェブサーバー。

于 2013-01-08T13:21:19.663 に答える