Показать сообщение отдельно
  #4 (permalink)  
Старый 21.05.2017, 21:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Слава богу что не все. Значит читаем строку из ресурса, выбираем из нее нужное, помещаем в массив, подсчитывая объем его, который должен быть не более SQL параметра max_allowed_packet, в случаем БД MySQL.

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

Реального режима времени вы не получите, и для такого объема просто слишком увеличите саму операцию. Лучше отдать эту задачу для запуска по cron, который также будет писать в БД статус операции. Клиент, если так необходимо сидеть и ждать окончания операции, будет читать и выводить этот статус.
Ответить с цитированием