Провёл тут эксперименты. Заметил, что категории очень тормозят импорт!
Создал файл только с категориями и подкатегориями - около 30 тысяч категорий и подкатегорий до 3-5 уровней вложенности. Сам файл импорта CSV:
https://disk.yandex.ru/d/OIyr_...
Такой файл импортируется более одного часа - 70-75 минут.
Весь импорт тормозится из-за постоянного просчета left_key и right_key в waNestedSetModel.class.php для всего дерева при импорте КАЖДОЙ категории!
Потом закомментировал в waNestedSetModel.class.php строки 136-144:
//$this->exec("UPDATE `{$this->table}`
// SET `{$this->right}` = `{$this->right}` + 2
// WHERE `{$this->right}` >= i:right".($this->root ? " AND {$this->root} = i:root" : ''),
// array('right' => $right, 'root' => $this->root ? $result[$this->root] : null));
// move next elements' left
//$this->exec("UPDATE `{$this->table}`
// SET `{$this->left}` = `{$this->left}` + 2
// WHERE `{$this->left}` > i:left".($this->root ? " AND {$this->root} = i:root" : ''),
// array('left' => $right, 'root' => $this->root ? $result[$this->root] : null));
и строки 146-147:
//$this->left => $right,
//$this->right => $right + 1,
А также закомментировал строку 1996 в файле shopCsvProductrun.controller.php:
//$model->move($id, null, $parent_id);
Теперь импорт происходит за 2-3 минуты!
Только после импорта надо сделать repair дерева, чтобы дерево категорий отобразились:
/webasyst/shop/?module=repair&action=categories
Можете как-то поправить Импорт CSV ?
1 комментарий
Либо добавить настройку в Импорте CSV - чтобы можно было отключать эти апдейты right_key и left_key для каждого импорта новой категории.
Пусть лучше апдейт этих параметров происходит после импорта всего CSV файла - что займёт не более 5-10 секунд.