Я пытаюсь импортировать огромный файл .csv в базу данных.Это база данных Drupal, я импортирую продукты в таблицы node, type_type_ и uc_products.Но это не так актуально, так как из-за оптимизации производительности я прекратил использовать функции Drupal node_load и / или node_save и вставляю / обновляю записи напрямую с помощью команд SQL.
Сценарий:
- Считать весь файл csv с локального сервера (около 40 МБ) в переменную (чтобы предотвратить доступ к файлу для каждой записи)
- Разобрать его в массив для каждой строки
Разобрать каждую строку вполя
Проверьте, существует ли запись в базе данных (1 выбор SQL, сравните конкретное поле)
- Если существует, обновите ее (1 обновление SQL)
Если не существует, вставьте его (3 вставки, 1 обновление)
6.1.Если запись имеет код изображения и он отличается от кода в базе данных, загрузите (сверните) новый файл изображения с внешнего сервера и сохраните его на локальном сервере.
1 дополнительная задержкавставить в таблицу журнала
При запуске этого скрипта я получил 502 Ошибка прокси (причина: ошибка чтения с удаленного сервера) после прибл.10k импортированных записей и страница перестает загружаться.Однако импорт продолжается (новые записи все еще добавляются в таблицы).Это останавливается после 20k-26k (пробовал несколько раз) записей.
Два вопроса: что это за ошибка прокси и почему я ее получаю?Как оптимизировать мой сценарий еще больше?Есть ли другой, обычный способ импортировать огромное количество данных в MySQL?
Большое спасибо.