0

製品を表示する Web サイトがあります。各ページには 16 個の製品が表示され、サイトには約 70,000 個の製品があります。各ページの HTML は、PHP を使用して生成されます。

製品情報はデータベース内に保存されます。大まかに、結果の最初のページ (最も安い商品を最初に表示したい場合) は次のように表示されます (疑似コードのみ):

// run sql to fetch product titles and image filenames
SELECT itemTitle, itemImageFileName FROM items ORDER BY itemPrice ASC LIMIT 16

// loop through and display items
for (i=0; i<16; i++) {
    echo "<p>$itemTitle</p>";
    echo "<img src=$itemImageFileName height='100px' width='80px'>";
}

これを行うと、画像のタイトルが最初に表示され、その後画像が約 0.5 秒から 1 秒後に読み込まれます。どうすれば画像の読み込みを高速化できるのだろうと思っています。

すべての画像は、70,000 枚の画像を含む 1 つのフォルダーに保存されます。ほぼすべての画像のサイズは 50KB 未満です。各画像ファイル名の形式は、id_width_height.jpg です。たとえば、ファイル名は次のようになります: 32193_80_100.jpg

ボトルネックは、フォルダ内に 70,000 個のファイルがあるため、サーバーが必要なファイルを見つけるのに時間がかかることではないかと考えています。これを加速する方法はありますか?画像の読み込みが遅い理由は他にありますか?

4

1 に答える 1

0

まず、Chrome/Firefox のネットワーク タブでイメージ リクエストを調べます。これにより、ルックアップとダウンロードのどちらが重要なのかという質問に答えることができます。リンクはありますか?

70.000 は多すぎます。ファイル名を分割して、/htdocs/img/32193/80_100.jpg のようなサブフォルダーを作成します。

于 2012-08-25T09:42:53.550 に答える