Делаю импорт товаров.
Есть несколько таблиц, товары, атрибуты и тд. Импорт происходит через XLS, товаров в одном файле может быть больще нескольких тысяч.
Самый оптимальный вариант, который приходит в голову:
1. Парсим первые N строк, формируемся инсерт для самих товаров и вставляем его.
2. Делаем запрос на получение айдишников вставленных товаров.
3. Формируем остальные таблицы с уже известной привязкой по айдишнику. Вставляем по таблицам.
4. Возвращаемся к пункту 1.
Все это обернуть в транзакцию.
Есть какие-то другие варианты, чтоб сократить\убрать количество запросов?
Про вставку нескольких строк я знаю, это и имелось в виду в пунктух 1 и 3, что вставляться будут пачкой.
Меня интересует вопрос с тем как правильно их связать и как сделать это оптимально.
Я использую следующую технику. Прохожусь по источнику и собираю все словарные данные. Их вставляю и оставляю в памяти. После на втором проходе выбираю словари из памяти и вставляю уже готовые значения пакетной вставкой примерно по 10000 значений