Тормозит Opencart?  

21 пользователь проголосовал

  1. 1. У Вас есть проблемы со скоростью работы?

    • Да, сильно тормозит
      7
    • У меня не более 5 тысяч позиций
      2
    • Купил мощную вдс и забыл об этом
      0
    • Тормозило, но побороли эту проблему
      4


Рекомендуемые сообщения

slon362    0

День добрый.

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

Итак столкнулись на медленную работы магазина, копали долго.

В итоге

- отключены подсчёты кол-ва товаров

- прописаны индексы

- фильтр товаров установлен с кешем.

 

После этих мер время загрузки сильно сократилось, но главная страница открывается всё равно 4 секунды.

Включили слоулог, оказалось что тормозит модуль "случайные товары" при выводе всеголишь 4 позиций.

 

Проблема в выборке "Order by rand"

Кто-то модифицировал данный модуль другими вариантами запросов?

Просьба поделиться решением. Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    822

Посмотреть здесь или еще вариант - и копать в этом направлении, вместо ORDER BY RAND()

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
slon362    0

Второе как раз курю, первое сейчас глянем. Просто хочется готового решения, малоли )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
snastik    824

Чтобы выбрать четыре рандомных товара  - проще взять в php выделить диапазон id товаров. создать набор рандомных значений, проверив каждое на присутствие в базе - в вашей ситуации лучшее решение вы вряд ли придумаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
chukcha    933

Ну... и я вствалю

 

сделать выборку с лимитом, например 3*нужное количество

и случайным start

 

результат (массив) - случайно перемешать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    822

В свое время вот такое прикрутил - правда оно для древней версии 0.2.2 :D , но переделать под актуальную вроде не сложно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
slon362    0

Ну что кто-нибудь возьмётся?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 097

https://opencartforum.com/topic/4726-modul-sluchainye-tovary-oc15-ocstore-101/?do=findComment&comment=30871

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

Решил практически посмотреть что будет на большой базе...

Вот упрощённый запрос из модуля

attachicon.gifRAND1.PNG

А вот слегка изменённый запрос

attachicon.gifRAND2.PNG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
slon362    0

Я правильно понимаю вот код модуля:

Вот кусок модуля в php который запрос делает к базе

   $sql .= " ORDER BY Rand()";
   
   if (isset($data['order']) && ($data['order'] == 'DESC')) {
    $sql .= " DESC";
   } else {
    $sql .= " ASC";
   }
  
   if (isset($data['start']) || isset($data['limit'])) {
    if ($data['start'] < 0) {
     $data['start'] = 0;
    }    
 
    if ($data['limit'] < 1) {
     $data['limit'] = 20;
    } 
   
    $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
   }
   
   $product_data = array();
     
   $query = $this->db->query($sql);
            $this->load->model('catalog/product');
   foreach ($query->rows as $result) {
    $product_data[$result['product_id']] = $this->model_catalog_product->getProduct($result['product_id']);
   }
   
   //$this->cache->set('product.' . $cache . '.' . $customer_group_id, $product_data);
  }
  
  return $product_data;
 }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
slon362    0

Решение нашлось, если что обращайтесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От raewskii

      300.00 руб
      Скачать/Купить дополнение


      Short Description (ocmod) for 2.3. Version:
      Добавляется в панеле, к товару - дополнительное поле (ниже основного описания). Использует редактор "WYSIWYG". Даёт возможно вставить картинки. Всё выглядит аккуратно и понятно для клиента. Если "Мини описание" не заполнено, показывает основное. Работает во всех стандартных категориях и модулях. Простое интегрирование в сторонние модули. Внимание! (Выполняется SQL запрос который добавляет колонку mini_description в таблице product_description).
      Добавил raewskii Добавлено 31.08.2017 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3  
    • От raewskii
      Добавляется в панеле, к товару - дополнительное поле (ниже основного описания). Использует редактор "WYSIWYG". Даёт возможно вставить картинки. Всё выглядит аккуратно и понятно для клиента. Если "Мини описание" не заполнено, показывает основное. Работает во всех стандартных категориях и модулях. Простое интегрирование в сторонние модули. Внимание! (Выполняется SQL запрос который добавляет колонку mini_description в таблице product_description).
    • От Mirosha
      Задача для опытного разработчика на OpenCart и ocStore и хорошо знакомого с модулем SEOpro уверенно знающего как реализовать данную задачу в кратчайшие сроки!

      Тестовый сайт http://test.abello.ru
      Разделы/подразделы нужно оставить все как есть сейчас например: http://test.abello.ru/katalog/torty/detskie-torty/malchikam/

      Нужно, чтобы у товара http://test.abello.ru/katalog/torty/detskie-torty/detskiy-tort-vypusknoy-jurnal.html был только один URL и был он расположен только здесь: http://test.abello.ru/produkt/detskiy-tort-vypusknoy-jurnal.html

      При нахождении пользователя в карточке товара в хлебных крошках должен быть пусть который пользователь фактически проделал на пути к этой карточке товара, т.е.
      Главная > Торты > Детские > Мальчикам > Детский торт "Выпускной журнал".
        Файлы модуля SEOpro вложены к заданию.   Готов рассмотреть Ваши предложения реализации данной задачи с указанием в ответном сообщении сроков и стоимости реализации данной задачи.

      Есть и другие задачи.
      seopro.zip
    • От maskirovka52
      Добрый день!
      Нужна помощь в создании магазина товаров милитари (шмотки экипировка) на Opencart
      Купил шаблон и хостинг, установил всё это и забил это дело на полгода...
      www.maskirovka52.ru Сейчас сунулся а там вообще ничего не грузит...
      Нужно начинать решать эту проблему... 
      Если заинтересовал Вас то меня зовут Николай Skype: slavy_sizov
    • От Mixa0389
      Всем привет, в opencart пока новичок, делаю на 2.3.0.2, как собственно добавить еще одну кнопку "Купить" в карточку товара? Просто взять весь кусок кода id="product" в product.tpl и продублировать в нужном месте не работает, где то там еще есть проверки которые я не учел, или нужно лезть в контроллер и что то дописывать туда?
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу