2

最近、Mysql データベース (BLOB データ型を使用) に画像を保存しようとしました。php と web を使用してアップロードして保存します。十分に大きな画像をロードする場合を除いて、正常に動作しますが、ロードが非常に遅くなります。この画像をより速くロードする方法はありますか?

注:私の友人は、この画像に強制キャッシュを使用することを提案しています(彼は画像のコンテンツヘッダーを変更することについて何か言っています)が、その方法がわかりません。そして、それが大幅に優れたパフォーマンスをもたらすとは思えません。

前もって感謝します

4

4 に答える 4

2

画像は必ずキャッシュする必要があります。これは、ほとんどの場合、作成する画像の URL が同じ画像に対して常に同じであることを確認するだけで実行できると思います。あなたの問題は、max_allowed_pa​​cket を変更する必要があることだと思います。これが小さすぎると、ネットワーク経由で一度に多くのデータを送信できなくなります。また、写真が本当に大きい場合は、写真の品質をおそらく 70% に変更することも検討しますか? すべての画像サイズ変更機能には、それを変更する方法があります。すなわち: http://php.net/manual/en/function.imagejpeg.php。それが役立つことを願っています。YSlowも調べてみます。画像の読み込みを遅らせている正確な問題を指摘するのに役立ちます。品質、キャッシュ、圧縮、または w/e であるかどうか。

于 2012-12-14T13:47:52.247 に答える
1

画像のキャッシュは、画像がファイルシステムに保存されている場合に使用できます。それらがデータベースから動的にポップおよび出力される場合、PHP コードがそれらを要求するたびに取得されます。

画像は数十ミリ秒でフェッチされる可能性がありますが、3MB の画像データがクライアントのブラウザーに 5 秒から 1 分 (接続速度によって異なります) でダウンロードされる可能性があります。それとはあまり関係がありません (一般的な共有ホスティングではさらに少なくなります)。

画像をファイルシステムに保存して、ブラウザでキャッシュできるようにすることをお勧めします。または、有効期限が切れるまでキャッシュから提供されるように、Apache サーバーに memcache を設定することもできます。

于 2012-12-14T13:50:16.130 に答える
0

キャッシングは良いことも悪いこともあると思います。代わりに、画像やその他のファイルをフォルダにアップロードして、ファイルに関する情報(名前、種類、サイズ、フォルダなど)だけをDBに保存することをお勧めします。

于 2012-12-14T13:45:12.327 に答える
0

データベースに画像を保存する必要がない場合は、画像はフォルダー内に保存することをお勧めします。データベースに保存する必要があるのは、それぞれのパスまたは名前です。

これにより、それらが正常にロードされます。もちろん、画像のサイズにもよりますが。

これは、ほぼすべての Web アプリケーションで見られるものです。

于 2012-12-14T13:47:37.007 に答える