データ分析エンジニアのブログ

日常のことからプログラミングや機械学習まで@六本木

画像をDBに保存するのか?パスだけ保存するのか?

Webサイトを作るとき、DBに画像を直接保存する方法と
ディレクトリに画像を置いてパスだけ保存(または何も保存しない)
方法がありますよね。

自分的には普通にパスだけ保存するやり方が自然と思っていたのですが
いざ聞かれてみると、それぞれのメリット、デメリットを
あまり把握してなかったので記事を書くことにしました。

まずはDB保存のメリットから

・キャッシュなどを利用すれば負荷を抑えることができる
・画像の出力形式に柔軟な対応ができる
・サーバーの冗長化の際に便利(分割など)
・バックアップ、リカバリが簡単

そしてパス保存のメリット

・処理が簡潔
・DBのメンテナンス性が高い
レンタルサーバーなどで制限
・DBエンジンのパフォーマンスの向上
・socketを占有しない
・実装がラク(笑)

調べてみると以上のような感じでした。

自分が作るような小規模なWebアプリケーションなどならパス保存かな
という印象ですが、ディレクトリ構成なども考えておかないと
突然遅くなったりということもあるのでファイルで保存の場合は
注意しておきましょう!