У меня есть большой набор данных в MySQL (пользователи, компании, контакты)? около 1 миллиона записей.Вставка огромного набора данных [PHP, MySQL]
И теперь мне нужно сделать импорт новых пользователей, компаний, контактов из файла импорта (csv) с около 100000 записей. У записей из файла есть вся информация для всех трех сущностей (пользователь, компания, контакты). Кроме того, на производстве я не могу использовать LOAD DATA (просто не так много прав :()
Итак, есть три шага, которые должны быть применены к этому набору данных -.. Сравнение с существующими БД данных - обновить (если мы найдем что-то на предыдущем этапе) - и вставить новые, записывает
Я использую PHP на сервере для занятий, что я вижу два подхода:
- читая все данные. файл, а затем работать с этим массивом BIG и применять эти шаги.
- или чтение построчно из файла и передать каждую строку через шаги
, какой подход является более эффективным? по CPU, памяти или использованию времени
Могу ли я использовать транзакции? или это замедлит всю производственную систему?
Спасибо.
Я не думаю, что вам нужно найти наиболее эффективный метод для этого. Для записей 100K это займет не более 20-30 секунд, и вам, вероятно, больше не понадобится вставлять эти записи ... –
Вы шутите? я реализовал 1-й подход и занимает много времени, я уверен, что вы не можете себе представить, как работает он;) – user1016265