Вопрос такой. У меня на сайте есть возможность создания счетов и распечатки их в pdf файл. Счета генерируются из mysql при помощи библиотеки mpdf.
Теперь надо сделать возможность отправлять счета клиентам. И вот тут возникает вопрос: что лучше, каждый раз генерировать пдф файл по запросу и отправлять его или использовать однажды сгенерированный файл?
В первом случае при генерациями каждый раз возникают запросы в базу, во втором случае количество запросов меньше, но надо хранить много файлов и следить за ними: удалять при обновлении исходного документа, как пример.
Может есть какие-то устоявшиеся практики для таких случаев?
Все зависит от частоты обращений к этим файлам и что немаловажно частотой изменений в них. Если rps не большой то лучше генерировать на лету и возможно класть в кешь на 1-2 дня
В вашем вопросе есть готовый ответ:
Если кол-во запросов БД небольшое и нет нагрузки то проще генерить налету (как минимум вам не надо будет решать вопрос апдейтом , если данные в БД изменятся)
Если БД перегружена и есть место на диске - тогда кидайте на диск
В первом случае при генерациями каждый раз возникают запросы в базу, во втором случае количество запросов меньше, но надо хранить много файлов и следить за ними: удалять при обновлении исходного документа, как пример.
Собственно сами все понимаете, но если это не позволяет вам выбрать решение, то выбирайте то, которое проще. Т.е. генерите на лету, а когда базе реально станет тяжело, тогда и сделаете кеширование.