Сценарий
Я создаю веб-приложение, в котором отчеты могут создаваться на лету (на основе информации, полученной из базы данных SQL).Эти отчеты будут содержать графики, которые также могут быть созданы на лету.Поскольку эти диаграммы содержат конфиденциальную информацию, об использовании API сторонних диаграмм (например, Google Charts) не может быть и речи.
Проблема
Я использую расширение PHP GD для генерации этих диаграмм.Это довольно медленно.Кэширование - это путь, но проблема в том, что существует огромное количество возможных диаграмм;хотя я считаю, что большинство запрошенных диаграмм будут сгенерированы ранее.
Частичное решение
Диаграммы создаются с данными и другой информацией (размер, тип диаграммы и т. д.).Поскольку они могут однозначно идентифицировать диаграмму, я даю каждой диаграмме уникальный хэш на основе этой информации и сохраняю ее.Теперь я могу вычислить хеш для вновь запрошенной диаграммы и посмотреть, отрисовал ли он у меня.
Проблема с этим - событие столкновения.Чтобы обойти это, я думаю о сохранении хеша и сериализованной формы данных в таблицу SQL.Тогда, если у меня будет попадание в кеш, я все равно буду сравнивать сами данные.
Я перерабатываю это?(Это 160-битный хеш - SHA1)
Есть ли лучший способ справиться с этим?