dポイントプレゼントキャンペーン実施中!

お世話になります。

勉強がてら携帯向けにPHP+MySQLで画像(Flash含)や動画配信するサイトを構築しています。
画像はデータベースに格納するか、ハードディスクから読み込むか迷っています。
イマイチそれぞれのメリットデメリット、また制限事項などを理解できていないのですが、その辺りをどなたかわかりやすくご教授いただけませんでしょうか。

A 回答 (3件)

2番の方の御回答に付け加えると、メリットに、セキュリティの向上も上げられるでしょうか。



DBサーバは、www サーバよりはるかにセキュリティが厳重に設定できます。ファイアウォールの中にいて外界から直接アクセスできず、www サーバ(かそのプロキシ)に向けてのみ、しかもDBポートだけ開けておく、という状態で運用されるなら、www サーバのようなアタックも受けないし、万一wwwサーバに侵入されても、DBのコンテンツをごっそり盗まれるまでには、まだ色々とバリケードが立てられます。

一方、www サーバに重要な画像コンテンツを直接置いてしまうと、うっかり下手な symbolic link を作ったり httpd のバグで、それが URL として直接取得できてしまうとか、www サーバに侵入されてしまうとか、色々な危険があります。まあ、CGI の get 引数の規則性からコンテンツが順次たぐれてしまうという設計だと、ファイアウォールも形無しですが。

DBサーバに置くデメリットは、勿論スピードでしょう。DB → www → ユーザとBLOB転送を最低2回することになりますから。
    • good
    • 1
この回答へのお礼

なるほど セキュリティ重視かスピード重視ということですね。ありがとうございました。

お礼日時:2006/08/13 10:31

#1さんの回答に異論があります。



>DB上にはバイナリではなく変換してデータがおかれる

これはどういう意味でしょうか?
BLOBなど、バイナリのまま大容量のデータを格納するデータ型があり、変換などは行われません。

画像などをDBに格納すれば、他の関連情報と同期を取れたままバックアップや移行が行えるし、SQLで操作が可能です。
別ファイルとして管理すれば、同期を取った管理は、利用者側で行うことになり、移行時なども利用者側で関連ファイルを漏れなく移行しなければならなくなります。
    • good
    • 1
この回答へのお礼

むむ。。わからなくなってきました。
でもバックアップや移行時にもメリットがあるのですね。ありがとうございました。

お礼日時:2006/08/13 10:33

画像をDBに格納するのはオーバーヘッドが大きいため


無駄だとおもいます。テーブルが肥大するのもそうですが
DB上にはバイナリではなく変換してデータがおかれるので、
呼び出しのたびに変換されると効率もわるいでしょう。
ファイル置き場をつくり、適当につけた名前をDBで
管理するのが妥当でしょう。
    • good
    • 0
この回答へのお礼

なるほど。DBへの格納はデメリットが多いみたいですね。そもそもなぜそんな機能があるのか不思議ですね。ありがとうございました。

お礼日時:2006/08/11 13:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す