1

ビデオ ファイルを BLOB オブジェクトとしてデータベースに保存するか、物理ディスクに保存することをお勧めしますか。

これは、ユーザーがビデオをアップロードして表示できる youtube に似たサイト用です。

データベースはMysqlになります

どちらのオプションが優れているか、またその理由

ありがとう

4

2 に答える 2

2

Pro MySQL: - BLOB は外部キーの影響を受ける可能性があるため、ファイルシステムに保存するのではなく、データベースを冗長に保ちます。この場合、ファイルの削除をプログラムする必要があります。- きめ細かなユーザー権限。

短所: - MySQL は無料で実行されません。ファイル システムからのサービスとは対照的に、オーバーヘッドが発生します。- Web サーバーは、データベースから BLOB を直接提供できません。これは、PHP がプロセスを仲介する必要があることを意味します。BLOB が MySQL から PHP にロードされると、メモリ使用量は少なくとも BLOB と同じ大きさになります。したがって、ファイルが数百 MB に達する可能性がある場合、これは Web サーバーに大きな負担をかけることになります。

実際には、MySQL をファイルの保存に使用することはできません。BLOB は主に、キャッシュなどの大量のシリアル化されたデータを保存するために使用されます。

于 2010-08-19T23:35:00.817 に答える
0

NFS を使用して、ストレージの観点から問題なく、約 5 年間のメディア コンテンツを保存しています。操作、エンコード、および保存は、ffmpeg、php スクリプト、および cron ジョブを介して管理されます。ビデオ メタデータは MySql データベースに保存され、Web 配信は Nginx 経由で提供されます (読み取り専用の NFS マウント経由)。この環境では、動画ファイルのサイズは最大 2GB です。おそらく、別の db エンジンで高速化できますが、リアルタイムの無駄は、ファイルの保存ではなく、エンコード プロセスによるものです。

何千もの小さな画像(アバターなど)を保存するとき、MySqlを使用してファイルのメタデータ(画像パスやその他のプロパティ)を保存し、重いクエリでdbを遅くしすぎる可能性のあるBLOBフィールドにファイルを保存しません。

于 2012-12-10T10:24:59.253 に答える