エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

Why Not to Store images in Database?の翻訳・意訳+個人の意見

経緯

DBに画像を保存するシステム作ったことがあり、思うところがあったので、翻訳と意見をまとめた

原文

Why Not to Store images in Database? - DEV Community

翻訳+意訳

  1. データベースに画像を保存するメリットとデメリット:

    • データベースへの画像保存は、一元管理やバックアップの簡便さを提供
    • 画像データは大きくて重いため、データベースのパフォーマンスに悪影響を及ぼす可能性がある
  2. データベースのパフォーマンスへの影響:

    • データベースは高速にアクセスされることが求められますが、画像の大容量データを含むと処理が遅くなる恐れがあります。
    • データベースが肥大化するとバックアップやリストアにも時間がかかり、システム全体のパフォーマンスが低下します。
  3. キャッシュの問題:

    • データベースに画像を保存すると、キャッシュメモリを無駄に消費してしまうことがあります。
    • キャッシュメモリの効率的な利用ができなくなるため、データベースの応答性が低下するかもしれません。
  4. スケーラビリティへの影響:

    • データベースに画像を保存すると、データベースの拡張が難しくなります。
    • データベースサーバーの負荷が増大し、システムのスケーラビリティに悪影響を及ぼす可能性があります。
  5. 代替案:ファイルシステムへの保存:

    • 画像データはファイルシステムに保存し、データベースにはファイルのパスや識別子を格納する方法が効果的です。
    • ファイルシステムを使うことで、データベースのパフォーマンスを維持しつつ、画像の管理と表示が容易になります。
  6. セキュリティ上の懸念:

    • データベースに直接画像を保存すると、セキュリティリスクが高まります。
    • ファイルシステムに保存することで、アクセス制御を強化し、セキュリティを向上できる

このように、データベースに画像を保存する際の問題点と代替案について考察されています。データベースのパフォーマンスやセキュリティを向上させるためには、画像はファイルシステムに保存し、データベースにはリンクや識別子を格納する方法が推奨されています。

感想+考え

やっぱり、DB保存はメリット薄いよな。。。
現行踏襲で画像をDBに保存してたけど、かなり容量大きい上に、データ見るのに苦戦する。
データの確認がしにくいのは、かなりのデメリット。
テストする上でかなりネックになってくる。
開発した際に、それでかなりイライラした。