Трудно сказать без написания тестового кода и профилирования.
Если вы выберете маршрут из 100 продуктов на файл, будут ли использоваться все 100 продуктов для создания страницы?
Наличие 1 файла для каждого продукта означает, что на диске нужно будет много искать, если вам нужны данные о 100 файлах на странице.
Наличие 100 продуктов на файл означает, что если вашей странице требуется только 1 продукт, то необходимо прочитать все данные и затем найти соответствующий продукт для извлечения.
Мое предложение состояло бы в том, чтобы исследовать БТР. Кэш хранится в памяти, поэтому доступ к нему очень быстрый, и вы можете хранить 1 продукт на ключ, что должно упростить получение и хранение.
Если нагрузка увеличивается, и вы распределяете нагрузку между несколькими серверами, вы можете взглянуть на memcached, который является системой кэширования распределенной памяти.