Очень долго идет импорт цены в магазин - можно ли как-то ускорить?

Здравствуйте.

Cs-cart Ultimate, несколько витрин. Периодически делаю экспорт цен товаров, меняю цену и делаю импорт новой цены.

Использую при импорте только 4 колнки: витрина, якык, артикул и цена. Но импорт выполняется очень медленно, 12000 строк с ценой для разных витрин - около 15-20 минут… При том что у меня не обычный хостинг а VPS: 4 CPU, 8 GB RAM.

И это я импортирую только одну колонку “Цена”…

Как можно ускорить импорт? Что влияет на скорость импортирования товаров? Может какие-то настройки на сервере нужно прописать или поменять?

На скорость влияет: база данных, php и его настройки, диск и его тип, размер структуры базы данных - количество языков, складов, вариаций. На самом деле очень много ньюаносв может быть.

Пример из свежего: клиент долгое время говорил, что сайт тормозит и импорт делается по пол дня и хаил наш софт, по итогу тестов подобное поведение нами не наблюдалось даже при вовторении нами на его серверах. Ладно клиент попросил перевести с БД 5.7 на 8.0 и обновить с 1.14 до 4.16.1, мы полезли делать дампы и заметили, что на сто тысяч товаров база слишком уж большая. Итого, у клиента было 3185000 вариантов характеристик.

Сотрудник импортируя товар выгружал все, вплоть до айди товары поставщика, айди категори в xml и другой мусор, а проверки этой любви у системы так же занимает много времени.

Если вам нужно обновление цен и остатков в десятки раз быстрее коробки, напишите нам - дадим попробовать модуль

Скорость вас приятно удивит. Коробочный и все модули которые от него наследуются сильно тормозят по фундаментальным причинам.

Благодарю за ответ

Сотрудник импортируя товар выгружал все, вплоть до айди товары поставщика, айди категори в xml и другой мусор, а проверки этой любви у системы так же занимает много времени.

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

Так с характеристиками это был какой-то баг? Или в чем была проблема, что их было так много? Как решили проблему?

Вроде на старых версиях cs-cart была проблема с дублированием характеристик. Где-то встречал на форуме такую информацию…

А то у меня с характеристиками тоже беда… В базе данных в таблице характеристик - 4 331 465 строк…

Но у меня несколько витрин. Характеристик у меня - 68 штук, а товаров на всех витринах 18512 штук. Только часть характеристик расшарены на несколько витрин. Не могу понять более 4 миллионов строк - это норма в моем случае или это как раз проблема с дублирование характеристик…

Спасибо за предложение. С удовольствием использовал бы, но цена модуля кусается… Хотя, если человеку нужен весь функционал модуля и он его использует, тогда норм, а мне тот весь функционал не нужен…

Мне нужен только быстрый импорт цены из csv файла в магазин… Может есть у вас возможность оставить в модуле только эту возможность импорта цены, без остального функционала, и пропорционально снизить цену модуля?

К сожалению нет такого, выдернуть именно этот функционал проблемно.

Импортируйте сразу в базу, тыщ 100 товаров 1-2 сек. будет.

Можно подробнее что вы имеете в виду… Разве обычный импорт выполняется не в базу?

Обычный импорт выполняет массу стандартных функций ядра, которые сами по себе делают кучу запросов и проверок условий, так как должны правильно работать на любом магазине (с разными логиками итд). Я например сразу написал функцию, которая принимает цены и количество от 1С и пишет их в базу. Потом решил сделать “по правильному” - через функции ядра. Время импорта выросло с 30 секунд (25 секунд из них - формирование файла в 1С и передача на сайт) до 5 минут.

1 лайк

Нет, не баг. Бездумное выполнение действий. Необходимо было не тащить лишний хлам.

Сразу в базу, без помощи скриптов магазина.

Понял. Спасибо всем за ответы. Буду писать ТЗ программисту чтобы напрямую в БД импорт сделал

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

1 лайк

Благодарю за подсказку

включайте логи медленных запросов в базу, 99% что где-то индекса не хватает
сталкивался с подобным на магазине авто з/ч, что джали по пол-дня обмена
месяца 2 их “программисты” мучались, так и не нашли проблему
мне 30 мин хватило, чтобы пару индексов добавить)

+, из трэша, у одних видел поиск товара с … LIKE %запрос% …
P.S.: можно сам сервер еще потюнить, но это после индексов уже

Спасибо за совет.

включайте логи медленных запросов в базу

Подскажите, я могу как-то сам включить логи медленных запросов в базу? Как я понимаю, этого нет в стандартной функциональности движка… Нужно какие-то строки дописать в код?

+, из трэша, у одних видел поиск товара с … LIKE %запрос% …

Я, как пользователь, могу сам как-то проверить нет ли у меня при поиске такого рода запросов?

пишите