シナリオ
レポートをその場で (SQL データベースから取得した情報に基づいて) 生成できる Web アプリケーションを構築しています。これらのレポートにはグラフが含まれており、オンザフライで生成することもできます。これらのチャートには機密情報が含まれているため、サードパーティのチャート API (つまり、Google チャート) を使用することは問題外です。
問題
これらのチャートを生成するために PHP の GD 拡張機能を使用しています。かなり遅いです。キャッシュは有効な方法ですが、問題は膨大な数のチャートが存在することです。ただし、要求されるチャートの大部分は、以前に生成されたものになると思います。
部分解
グラフは、データとその他の情報 (サイズ、グラフの種類など) を使用して生成されます。これらはチャートを一意に識別できるため、この情報に基づいて各チャートに一意のハッシュを与えて保存します。これで、新しくリクエストされたチャートのハッシュを計算し、すでにレンダリングされているかどうかを確認できます。
これに関する問題は、衝突のイベントです。それを回避するために、ハッシュとシリアル化された形式のデータを SQL テーブルに保存することを考えています。その後、キャッシュ ヒットが発生した場合でも、データ自体を比較します。
私はこれを過剰に設計していますか?(これは 160 ビットのハッシュ - SHA1 です)
これを処理するより良い方法はありますか?