Пролистав пару тем на форуме, где обсуждалась возможность использовать opencart для большого количества товара, захотелось попробовать все самому. :-)
Тем более подвернулся халявный VPS.
Вот что вышло: http://demo5.demo.pl.ua/
Что делал:
- софт на VPS: NGINX без apache, php-fpm, APC
- установил opencart 1.5.5.1
- сразу отключил счетчик товаров в админке, на 10 000 товарах помогло, далее стало бесполезно.
- от стандартного модуля категорий пришлось отказатся, страницы генерились по 2-3 минуты
- использовал этот модуль от toporchilo http://opencartforum...B8%D0%BE%D0%BD/
- категории в верхнем меню пришлось отрубить по той же причине, можно использовать http://www.opencart....tension_id=6074
- оптимизировал таблицы в mysql
Страницы стали открываться быстро, кроме категорий верхнего уровня, независимо от того есть ли в верхней категории товары или нет.
Пришлось закоментировать запрос в контролере категории.
Верхние категории открываются быстро, но стоит только добавть товар в 2 категории , все - хана, тормоза опять начинаются.
$this->data['categories'] = array();
$results = $this->model_catalog_category->getCategories($category_id);
foreach ($results as $result) {
$data = array(
'filter_category_id' => $result['category_id'],
'filter_sub_category' => true
);
/*$product_total = $this->model_catalog_product->getTotalProducts($data); */
$this->data['categories'][] = array(
'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
);
}
Итог:
Мой способ подойдет тем, у кого строгая иерархия категорий и товаров.
И в каждой категории последнего уровня не буде лежать очень много товаров.
Поиск все-равно тормозит
Еще наблюденя:
Построение индексов таблиц ничего в плане производительности не дало.
Платный модуль кэширования с opencart.com сделал только хуже. :-)
Просьба потестить: http://demo5.demo.pl.ua/