1С-Битрикс - тюнинг БД для импорта файла CommerceML2

Интеграция программы в различные учётные системы и интернет магазины.
Аватара пользователя
TechAdmin
Администратор
Сообщения: 3786
Зарегистрирован: 27 авг 2008 14:30

06 июн 2011 09:43

Для импорта данных из файла CommerceML2, БД 1С-Битрикс не оптимизирована должным образом.
Поэтому при объёме каталога товаров от 1000 товаров обновление сайта занимает довольно продолжительное время.
Для ускорения обновления сайта необходимо для таблиц создать индексные файлы.

Ниже код SQL который необходимо выполнить например в программе phpMyAdmin:

Код: Выделить всё

ALTER TABLE `b_iblock_element` ADD INDEX ( `XML_ID` );
ALTER TABLE `b_iblock_element` ADD INDEX ( `IBLOCK_ID` );
ALTER TABLE `b_iblock_element` ADD INDEX ( `ACTIVE` );
ALTER TABLE `b_iblock_element` ADD INDEX ( `SORT` );
ALTER TABLE `b_iblock_element` ADD INDEX ( `WF_STATUS_ID` );
ALTER TABLE `b_iblock_element` ADD INDEX ( `IN_SECTIONS` );
ALTER TABLE `b_iblock_element` ADD INDEX ( `TMP_ID` );
ALTER TABLE `b_iblock_element_property` ADD INDEX ( `IBLOCK_ELEMENT_ID` );
ALTER TABLE `b_iblock_element_property` ADD INDEX ( `VALUE_TYPE` );
ALTER TABLE `b_iblock_element_property` ADD INDEX ( `VALUE_ENUM` );
ALTER TABLE `b_iblock_element_property` ADD INDEX ( `VALUE_NUM` );
ALTER TABLE `b_catalog_price` ADD INDEX ( `PRODUCT_ID` );
ALTER TABLE `b_catalog_price` ADD INDEX ( `EXTRA_ID` );
ALTER TABLE `b_catalog_price` ADD INDEX ( `PRICE` );
ALTER TABLE `b_catalog_price` ADD INDEX ( `TMP_ID` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `CODE` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `XML_ID` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `TMP_ID` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `ACTIVE` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `GLOBAL_ACTIVE` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `IBLOCK_ID` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `IBLOCK_SECTION_ID` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `LEFT_MARGIN` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `RIGHT_MARGIN` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `DEPTH_LEVEL` );
ALTER TABLE `b_iblock_section` ADD INDEX ( `DESCRIPTION_TYPE` );

Для обновления сайта 1000 товарами требовалось 5 минут, после создания индексов сайт обновляется за 1 минуту, берегите своё время, а мы поможем вам в этом ;)
С уважением, поддержка ElbuzGroup.
sveekey
Сообщения: 129
Зарегистрирован: 23 янв 2012 11:24

13 ноя 2012 15:01

К вопросу о скорости импорта CML2:
в 1С есть такая настройка "Выгружать только измененные товары", есть что-то аналогичное в PLI?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 3786
Зарегистрирован: 27 авг 2008 14:30

13 ноя 2012 15:46

К сожалению в ПЛИ нет такой функции.
С уважением, поддержка ElbuzGroup.
Alexx
Сообщения: 141
Зарегистрирован: 21 сен 2012 18:11

29 янв 2013 19:33

Ниже код SQL который необходимо выполнить например в программе phpMyAdmin:


Скажите, пожалуйста, sql код еще актуален на сегодняшний день?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 3786
Зарегистрирован: 27 авг 2008 14:30

29 янв 2013 20:22

Сложно сказать, нужно проверять структуру, возможно там всё уже изменилось и скорость загрузки файла CommerceML2 уже приемлемая. Для скоростного обновления используйте "туннель".
С уважением, поддержка ElbuzGroup.
Alexx
Сообщения: 141
Зарегистрирован: 21 сен 2012 18:11

30 янв 2013 10:03

Ясно.

Туннель сейчас использую, но, после этого (выгрузки в битрикс) приходится каждый раз и обязательно!: чистить кэш (что сильно влияет на первоначальную загрузку страниц сайта, а загружаем каждый день), делать переиндексацию сайта (иначе поиск сайта не видит новые товары). Это не очень удобно.

После экспорта на сайт через CommerceML изменений на сайте не произошло, хотя программисты утверждают, что при такой выгрузке битрикс сам видит все изменения и вышеописанные действия не нужно делать. Пришлось восстанавливаться из резервных копий.

Хотим попробовать сделать экспорт файла csv или xml, но не смогли понять какие же поля надо выбирать, чтобы прошла выгрузка и соответственно загрузка на сайт. Ваши специалисты смогут подсказать?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 3786
Зарегистрирован: 27 авг 2008 14:30

30 янв 2013 10:25

При обновлении через туннель чистятся кеш файлы в папке managed_cache, а также добавляется для новых товаров информация для поиска. Возможно необходимо более детально разобраться что там не чистится и что не хватает для поиска.
Какие поля надо выбирать для файла csv или xml не в курсе.
С уважением, поддержка ElbuzGroup.
Alexx
Сообщения: 141
Зарегистрирован: 21 сен 2012 18:11

01 фев 2013 15:29

Возможно необходимо более детально разобраться что там не чистится и что не хватает для поиска.


Ухты! Это круто, если вы смогли так сделать! А можно как-то с вашей помощью это как-то можно сделать, так как без вашей помощи этого сделать не получится.
Alexx
Сообщения: 141
Зарегистрирован: 21 сен 2012 18:11

06 фев 2013 11:55

Ухты! Это круто, если вы смогли так сделать! А можно как-то с вашей помощью это как-то можно сделать, так как без вашей помощи этого сделать не получится.


Скажите, пожалуйста, смогут специалисты вашей компании помочь в решении данного вопроса?
Аватара пользователя
TechAdmin
Администратор
Сообщения: 3786
Зарегистрирован: 27 авг 2008 14:30

06 фев 2013 12:43

Можем попробовать разобраться, если вы предоставите доступ к базе данных сайта (phpMyAdmin), ФТП, админ части, архив БД ПЛИ.
А так же список проблем, например какой товар проверять, какие дейстия в админ части вы делаете чтобы решить проблему и т.д.
С уважением, поддержка ElbuzGroup.
Ответить

Вернуться в «Интеграция E-Trade PriceList Importer»