Помощь Настройка opencart под большое количество товаров

Тема в разделе "Opencart", создана пользователем bouton, 17 апр 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. bouton

    bouton Постоялец

    Регистр.:
    6 сен 2007
    Сообщения:
    144
    Симпатии:
    24
    Добрый день знатоки opencart'a.
    Сейчас делаю магазин на базе opencart. Возник большой затык. При импорте большого количества товаров (30 000 товаров) любая страница очень медленно грузиться. Поменял верхнее меню на SL Menu, убрал левое меню. По сути запросов к базе должно быть в разы меньше, однако ничего толком не поменялось, если только совсем чуть чуть быстрее открывается.
    На оф форуме сказали отключить пересчёт товаров, всё излазил - не нашёл.
    Подскажите пожалуйста какие манипуляции нужно проделать чтобы тупняка такого небыло.
    Видел на форуме что кто то умудрился в opencart запихать 120 000 товаров и всё нормально.
    Спасибо.
     
  2. Yuriy_Z

    Yuriy_Z Доработка+ OpenCart

    Регистр.:
    22 июл 2012
    Сообщения:
    159
    Симпатии:
    91
    Во первых тебе обычный хостинг не пойдет для такого к-ва товаров и ето пожалуй самое главное что ускоряет опенкарт при его прожорливой модели построения дерева категорий
    Вот тут посмотри как можно увеличить быстродействие перейдя на VPS или VDS

    Отключения подщета категорий мало что даст, но все же сделай ето

    Индексы в БД расставь...
     
  3. ThisIsSparta

    ThisIsSparta Писатель

    Регистр.:
    28 июл 2011
    Сообщения:
    3
    Симпатии:
    0
    Для обычного хостинга я настраивал кэширование запросов по этой статье

    Дело в том, что в моем пакете хостинга разрешена нагрузка на MySQL - 700, нагрузка на ЦП - 72. Без кэширования нагрузка на MySQL была всегда больше 700 и нагрузка на цп - 2. После включения memcached стало 20-30 - MySQL и цп - 20-50.
     
  4. sidoruk2000

    sidoruk2000 Постоялец

    Регистр.:
    19 окт 2012
    Сообщения:
    112
    Симпатии:
    27
    я делал магазин с количеством товара 45000. По оптимизации скорости было сделано:
    1. В контроллерах поубирал расчёт количества товара в категории (это основная причина тормозов)
    PHP:
    $product_total $this->model_catalog_product->getTotalProducts($data);
    - эту строку пишем $product_total = 0;
    Причём проделываем данную опперацию везде, где формируются категории (как минимум в шапке и в модуле)
    2. Смотрим, нет ли у нас замечательного модуля "Случайные товары магазина", который в случайном порядке выводит на главную несколько случайных товаров. Если есть отключаем, т.к. зачастую данный фильтр может положить даже небольшой (700 товаров) магазин.
    3. В контроллерах категории, модулей оптимизируем формирование массива товаров
    PHP:
    $this->data['products'][] = array(
                        
    'product_id'  => $result['product_id'],
                        
    'thumb'      => $image,
                        
    'name'        => $result['name'],
                        
    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES'UTF-8')), 0100) . '..',
                        
    'price'      => $price,
                        
    'special'    => $special,
                        
    'tax'        => $tax,
                        
    'rating'      => $result['rating'],
                        
    'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
                        
    'href'        => $this->url->link('product/product''path=' $this->request->get['path'] . '&product_id=' $result['product_id'])
                    );
    удаляем всё лишнее. а также выше данного формирования смотрим чтобы не подтягивались лишние данные.
     
  5. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30

    А как будет работать постраничная навигация без подсчета общего количества товара?
     
  6. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30
    А еще попробуйте это:
    http://opencartforum.ru/topic/2076-keshirovanie-cherez-memcached-i-draiver-mysql-cached/

    Минус - будет дольше обновляться информация о товаре во фронтенде после обновления его в админке.
     
  7. sidoruk2000

    sidoruk2000 Постоялец

    Регистр.:
    19 окт 2012
    Сообщения:
    112
    Симпатии:
    27
    Навигация будет работать стандартно, т.к. мы удаляем подсчёт товаров в каждой категории в модулях меню. На пагинации никак не отобразится.
     
  8. Yuriy_Z

    Yuriy_Z Доработка+ OpenCart

    Регистр.:
    22 июл 2012
    Сообщения:
    159
    Симпатии:
    91
  9. bouton

    bouton Постоялец

    Регистр.:
    6 сен 2007
    Сообщения:
    144
    Симпатии:
    24
    Всё равно, чтоб я не проделывал выскакивает вот такое сообщение.
    Но до того как я проделал всё то что вы описали страница долго грузилась, а теперь выскакивает очень быстро ))
     

    Вложения:

  10. nethare

    nethare Постоялец

    Регистр.:
    27 окт 2012
    Сообщения:
    104
    Симпатии:
    30
    Откройте файл /catalog/view/theme/default/template/common/header.tpl и посмотрите что там творится. Возможно есть в самом начале пустая строка. Или нет завершающей скобки php '?>'. Если что-то исправите, перед проверкой почистите кеш vqmod'а - /vqmod/vqcache.