Добрый день!
Сделал у себя на сайте
PHP-скрипт генерации отчётов в Excel-формате (XLS), CSV и текстовом виде для программы-просмотрщика.
Скрипт запускается каждый день в 00:05 и создаёт отчёты за прошедший день для всех объектов в базе. Например, для 29 апреля получается что-то вроде:
объект-1/отчёт-2014-04-29.xls
объект-1/отчёт-2014-04-29.csv
объект-1/отчёт-2014-04-29.txt
объект-2/отчёт-2014-04-29.xls
объект-2/отчёт-2014-04-29.csv
объект-2/отчёт-2014-04-29.txt
объект-3/... и так далее
Проблема следующая. Каждый отчёт весит до 1.2 Мб (36000 строк), а с учётом того, что их делается три вида, общий вес получается порядка 3.6-3.8 Мб за день. Пространства на диске у меня всего 10 Гб, на соседнем разделе 20, но туда я делаю дампы БД, так что это не вариант :)
Какие варианты решения пришли в голову:
1) Хранить файлы только за последний месяц
Плюсы: ест меньше места
Минусы: история не сохраняется, и остаётся ограничение в количестве объектов: если их будет больше 100, то даже месяц не получится хранить
2) Грузить файлы на сторонний файлообменник (Яндекс.Диск, например) и работать через него
Плюсы: много места (на ЯДиске 200 Гб)
Минусы: непонятно, как это сделать
3) Генерировать отчёты на лету по запросу пользователя, хранить их один день и потом удалять все сгенерированные файлы
Плюсы: не требует много места и решает задачу
Минусы: долгая выгрузка по времени, работа с БД в любое время и возможные утечки памяти (для Excel использую либу
PHPExcel)
Какой вариант лучше подойдёт? И как бороться с минусами подходящего варианта?