質問

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

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

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

どのオプションが優れているか、そしてその理由

ありがとう

役に立ちましたか?

解決

Pro MySQL:-BLOBは、ファイルシステムに保存するのではなく、外部キーの対象となる可能性があります。この場合、ファイルの削除をプログラムする必要があります。 - ファイングレインされたユーザー許可。

CON:-MySQLは無料で実行されず、ファイルシステムからのサービングとは対照的に頭上に付属しています。 -WebServersは、データベースからBlobを直接提供できません。これは、PHPがプロセスを仲介する必要があることを意味します。ブロブがMySQLからPHPにロードされると、メモリ使用量は少なくともBLOBと同じくらい大きくなります。したがって、ファイルが何百ものMBにぶつかる可能性がある場合、これにより、ウェブサーバーに大きな負担がかかります。

すべての現実において、MySQLはファイルを保存するために使用されるべきではありません。ブロブは、主にキャッシュなどのシリアル化されたデータのレアアマウントを保存するために使用されます。

他のヒント

NFSを使用して、メディアコンテンツを約5年間から保存し、ストレージの観点に問題はありません。操作、エンコード、保存は、FFMPEG、PHPスクリプト、Cronジョブを介して管理されます。ビデオメタデータはMySQLデータベースに保存され、Web配信はNginx(読み取り専用NFSマウントを介して)を介して提供されます。この環境では、ビデオファイルが最大2GBのサイズです。おそらく私は別のDBエンジンでより速く進むことができますが、リアルタイムの廃棄物はエンコードプロセスによるものであり、ファイルを保存するためではありません。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top