画像の保存場所はファイルシステムが良いですか?
それとも、データベースが良いですか?
それぞれの利点と欠点を教えてください。
ファイルシステムが良いです。
Webサーバのキャッシュを有効活用できるからです。
通常の Web サーバセットアップを使用する場合は、画像をファイルとして格納する。言い換えると、データベース内にはファイル参照のみを格納する。この主な理由は、通常の Web サーバのほうがデータベースコンテンツと比較してファイルのキャッシュに優れているためである。このため、ファイルを使用したほうがシステムの高速化を容易に図れる。
[参考URL]
あえてDBに格納する利点をあげるならば、確実に変更管理ができ、他の情報と同様に一元管理できることぐらいだと思います。
画像ファイルの量が多い場合や、アクセス数が多い場合などに画像ファイルの格納先サーバを分散したい場合は、DBに格納することでDB側の分散機能を利用できるという利点があるかと思います。
あとは、セキュリティ上画像に簡単にアクセスされたくない場合(認証等が必要な場合)はファイルとして持っておくよりDBに格納することでアクセスはされにくくなるかと思いますが。
ただ、どちらの場合もファイルシステム側で保存した場合でも対応ができないことはないので、よほど厳しい要件(画像ファイルを公開するサーバ側に格納してはいけない等)が無い限りファイルシステム側に保存する方が良いと思います。
・ファイルシステム
煩雑に利用される画像に利用。
データベースで画像を管理する場合でも
マスターをデータベースに保存して頻度の高い
ものは複製をファイルシステムに保存する方が
管理がしやすい。
例:アイコンや、背景、画面のレイアウト用
・データベース
著作権があったり、検索システムと関連
づけられたデータの管理をしたい場合、
一括管理したり、複数のサービスで共有する
または、データベースそのものがWebアプリを実行
をサポートしている場合全てのデータがデータベース
上に格納した方がよい。
例:電子透かしを動的に生成
ほとんどbtk84さんの回答で不足はないかと思いますが、データベースに収納すれば、その他もろもろのデータと同時に一気にバックアップが取れるという利点があります。
コメント(0件)