В первом случае при генерациями каждый раз возникают запросы в базу, во втором случае количество запросов меньше, но надо хранить много файлов и следить за ними: удалять при обновлении исходного документа, как пример.
PHP и Java давно идут на убыль
не знаю как оптимизировать
Возможно ли это сделать без добавления индексов на столбцы, так как размер таблицы сильно увеличится
Тестовые запуски нужно делать по холодному. Тоесть по тем данным которые еще не запрашивались. Это гарантирует честность результата. В противном случае ты будешь мерять отклик буферного кеша вместо диска. И такой результат будет красив - но в будущем не будет отражать действительность.