2012-04-05 6 views
2

近い将来、大量の動画をアップロードして保存するには、数百、多分数千の動画が必要になります。さらに、多くの画像はアップロードする必要がありますが、それほど多くはないので、サイズが小さくなります。今までは、次のように、私はいつもPHPとMySQLを使用しました:phpビデオと写真のアップロード:データベースとアップロードの保存

  • データベース
  • 参照してファイル
  • を表示するには、データベース内のフォルダ+ファイル名を画像
  • ストアファイル名をアップロード

しかし、私はデータベースに画像とファイルを格納するBLOBに関するいくつかの調査を行っており、この潜在的に大規模なプロジェクトにとってどの方法が最善であるかは不明です。私が行ったやり方をアップロードし続けるべきか、またはmysqlでBLOB型を使う方が効率的ですか?データベースにたくさんの動画や画像を保存すると、データが非常に多くなったり、処理が遅くなったりする可能性がありますが、私は完全に間違っている可能性があります。あなたが持っているすべての提案をお知らせください。

+2

BLOBに保存するすべての動画について、子猫は死にます! –

+0

あなたはそこに非常に有効なポイントを持っています! –

答えて

3

[OK]をクリックして、サーバーからファイルを提供し、その後遅くなりますので、2つの大きな領域は、次のとおりです。バックアップ、および依存

バックアップ

を変更しますあなたが選択したDBエンジン、バックアップはロック/ダンピング/ロック解除が必要です。データベースが大きければ大きいほど、ロックは長くなります。ホット同期(ロックなしのバックアップ)を可能にするためにいくつかの機能(マスタ/スレーブ)を使用できますが、バックアップがデータセットを完全にカバーするリスクがあり、DBの規模は依然として要因です。大容量のファイルが単純にファイル(DB BLOBSではなく)である場合、ファイルシステムのバックアップ戦略を作成するだけです。静的である可能性があるため、複数のコピーを保存するだけです(これはアップロード時 - サーバーAとサーバーBに保管)。

変更

は、あなたのシステムが同じとどまることを期待しますか?スケーリングの問題があるように思えます。あなたのシステムが成長するにつれ、DBを別のサーバー、別のサーバーまたはSAN(またはS3など)に移動する可能性がありますか? DBにすべてロックされている場合は、膨大なサイズ(大規模な高価なサーバー、マスター/スレーブなど)に対処するために、DBのみのソリューションに頼らざるを得ません。もちろん、あなたは1つのDBにファイルを保存することができます(バックアップの必要性が少なく、データDBを使いこなすことはありません)。そして、他のデータは別のものに保存できます...しかし、ファイルシステムは一種のDBです。

ので

ので、バックアップとスケーリングは、ファイルやないBLOBとして大容量のファイルを格納するためには、よりよい解決策です。ファイルが小さい場合(例えばMP JPGが低い場合)、バランスがずれることがあります。しかし、大きなファイルの場合は、DB処理のオーバーヘッドとDBサーバーにかかる余分な負荷要件はありません。分離してください。

+0

恐ろしい!あなたは私にそれを説明して本当にうれしいよ!それはトンを助ける! –

5

BOLBに画像を保存するのは効率的ではありません。管理が難しい。あなたのデータベースは大きくなります。

これは、PHPスクリプト

+0

合意。私は ';-)'の中に画像を入れません。 – halfer

+0

アドバイスのために大変感謝しています! :) –