ビデオファイルを保存する場所 - データベースまたはディスク
-
29-09-2019 - |
質問
ビデオファイルをデータベースに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を遅くすることができるブロブフィールドにファイルを保存しません。