あなたの状況を考えると、私が考えることができる他のオプションは2つだけです。
- "data:" プロトコルを使用して、サムネイルの base64 エンコード バージョンを HTML ページに直接エコーします。これらの画像をユーザーのブラウザーにキャッシュすることはできないため、これはお勧めしません。
- HTML5 の Web Storage を使用して、すべての画像をレコードとして保存し、base64 でエンコードされた画像データを BLOB として列に保存します。データベースがユーザーのマシンにダウンロードされたら、Javascript を使用してすべてのレコードをループ処理し、jQuery などを使用して動的にページにサムネイルを作成します。このオプションを使用すると、エンド ユーザーのブラウザーでデータベース全体のダウンロードが完了するまで待つ必要があり、かなり最新のブラウザーが必要になります。
あなたの最善の策は、遅延読み込み、期限切れヘッダーによるキャッシュ、および複数のホスト名からの画像の提供の組み合わせだと思います。
画像を論理的にグループ化できる場合は、上記のすべてに加えて、CSS スプライトも機能する可能性があります。たとえば、サムネイルが特定の日にアップロードされた画像の場合、1 日ごとに 1 つのファイルを作成し、ユーザーのブラウザにキャッシュすることができます。