OP質問に答える。静的ファイルとして、ディスク経由で Web サーバー経由で直接。わずか 100 ピクセルで、Web サーバーによるメモリ内キャッシュに最適です。そこには、ほぼすべてのWebサーバーに関する情報、キャッシュ戦略、構成、ハウツーがたくさんあります.
事実 - ユーザー エクスペリエンス (参照するイメージ速度) の点で最良のオプションは、CDN 対応のオブジェクト ストアを使用することです。限目。
静的ストレージの選択としての「DB」は、すべてのオーバーヘッド処理、DB への負担、財政的、および技術的負債の観点から、単純に費用がかかります。
いくつかの答えから、いくつかのこと
Google 画像と Yahoo 画像は base64 を使用し、画像をインラインで提供しています。ソースコードを確認すると、それが表示されます。
いいえ、絶対にありません。画像は主に静的ファイル「Web サーバー」から提供されます。
コンパクト - 単一のファイルがあります。また、ファイルが圧縮されている場合、base64 イメージは通常のイメージのサイズにほぼ圧縮されます。
実際には、まったく利点がなく、さらに圧縮に必要な処理はありますか?
ページは単一のリクエストで取得されます。繰り返しになりますが、単一の大きな負荷ではなく、複数の並列リクエストです。
非常に負荷の高いサイトで 100000 人のユーザーが 200 枚の画像を要求するとどうなるでしょうか。画像を返すサーバーのディスクは崩壊するはずです。それでも同じ量のデータを送信しますが、接続時間が長くなり、データベースに負荷がかかります. 第 2 に、100000 の同時接続を持つミル サイトの実行のオッズです... たとえそうであったとしても、これをすべて単一のサーバーで実行している場合、あなたは愚かな管理者です。
イメージ (バイナリ BLOB または Base64) を DB に格納することで、DB に膨大なオーバーヘッドが追加されます。大量のRAMがあるか、DBを介したクエリがとにかくディスクから出てきます。そして、そのような無制限の RAM を DID で使用している場合は、Ramdisk からビン イメージを提供します。理想的には、代替の専用の軽量 Web サーバー静的ファイルと最適化されたサブドメインで構成されたキャッシングを介して、可能な限り最速で最も軽い負荷になります!
前向きな計画?これまでのところスケールアップしかできず、DB のスケーリングにはコストがかかります (比較的言えば)。繰り返しますが、あなたが言うディスクは「sp
このような場合、100,000 人の同時ユーザーに数百の画像を提供している場合、画像の提供は CDN オブジェクト ストアのドメインにする必要があります。