Слава богу что не все. Значит читаем строку из ресурса, выбираем из нее нужное, помещаем в массив, подсчитывая объем его, который должен быть не более SQL параметра max_allowed_packet, в случаем БД MySQL.
Как только будет достигнуто это значение, формируем строку запроса для мнгострочной вставке данных в базу. Затем следующий пакет, и т.д. Насиловать БД запросами для каждой строки слишком накладно для такого объема.
Реального режима времени вы не получите, и для такого объема просто слишком увеличите саму операцию. Лучше отдать эту задачу для запуска по cron, который также будет писать в БД статус операции. Клиент, если так необходимо сидеть и ждать окончания операции, будет читать и выводить этот статус.
|