29 сентября 2022
313

На сайте обновляю товары с помощью "Импорт из Excel. Загрузка каталога товаров 1С-Битрикс" (kda.importexcel).

В каталоге несколько десятков тысяч товаров. Обновление идет очень долго (несколько часов).

Можно ли это как-то ускорить?


Скорость обновления импортом зависит от того, насколько быстро в БД можно найти товар, который требуется обновить.

Технически, чтобы такой поиск работал быстро, нужно, чтобы в БД было проиндексировано поле, по которому модуль импорта ищет товар.

У Битрикса для элементов инфоблоков индексируется только одно поле, которое можно использовать в рамках импорта: символьный код (CODE).

Поэтому:

  • Если для идентификации элемента используется (только или вкупе с другими полями) поле CODE, импорт будет работать быстро.
  • Если CODE не используется для идентификации, импорт будет работать медленно.108d896a-cafe-41df-9200-131ab19202c5.png

Пример: для БД в 160 тысяч товаров поиск только по ИМЕНИ занимает 0.5 секунды. Поиск по CODE происходит практически мгновенно. Соответственно, при переходе с идентификации по имени на идентификацию по CODE возможно ускорение импорта более, чем в 10 раз.

Также замечено, что импорт идет долго, если для идентификации элемента, помимо "Наименования" и "Символьного кода", выбрано какое-либо свойство (пункт, который начинается со слова "Свойство ...").

38f66c7c-d437-4d87-9b53-56e5298c912e.png

Несмотря на то, что "Наименование" тоже выбрано для идентификации, импорт с использованием Артикула идет более, чем в 10 раз дольше.

Поэтому рекомендуется использовать для идентификации только основные поля инфоблока, а не дополнительные свойства.

Основные поля - это вот эти:


8f997bed-21c1-471c-aff7-aa6ecf00207b.png


По сути для импорта подходят только два:

  • Название
  • Символьный код

Для частного случая, когда для идентификации используется Наименование элемента, а настроить импорт с использованием поля CODE возможности нет, можно сделать в БД индекс по колонке NAME:
create index i_name on b_iblock_element(NAME);

Такие случаи возможны, например, когда в файле импорта нет идентификаторов, которые можно было бы засунуть в CODE, или когда CODE на сайте настраивается вручную (например, для красивых url) и его нельзя обновлять импортом.

Позвоните нам!
Личный кабинет
Вам будет доступна история заказов, управление рассылками, свои цены и скидки для постоянных клиентов и прочее.
Ваш логин
Ваш пароль
Работаем для вас с 9:30 до 18:30
Ждем писем!
г. Санкт-Петербург, Краснопутиловская ул., 69