Помощь Оптимизация mysql при использовании > 17000 товаров

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

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

    maxim nestoff Создатель

    Регистр.:
    23 апр 2009
    Сообщения:
    182
    Симпатии:
    13
    Друзья, после импорта товаров сайт (или даже скорее главная страница сайта) стал очень долго открываться. Использую свой сервер с 512 мб оперативы. В процессах mysql сжирает 98% ресурсов процессора при открытии главной страницы сайта. Попробовал убрать товары и категории - никаких изменений в лучшую сторону. Выставил
    query_cache_size=128M

    Попробовал поигратся с конфигами mysql - никакого результата.


    Страницы about, админка отрываются нормально.
     
  2. Redfox

    Redfox Создатель

    Регистр.:
    26 июн 2012
    Сообщения:
    36
    Симпатии:
    3
    Случаем не стоит подсчет количества товаров в категориях ?
     
  3. thekorolev

    thekorolev Постоялец

    Регистр.:
    24 май 2012
    Сообщения:
    113
    Симпатии:
    74
    Есть специальный модуль (от Yoda, кажется), в котором категории оптмизированы под большое кол-во товаров. Но с таким количеством, вам надо кэшировать все и вся + уменьшать запросы к БД.
     
    Unlimiter нравится это.
  4. maxim nestoff

    maxim nestoff Создатель

    Регистр.:
    23 апр 2009
    Сообщения:
    182
    Симпатии:
    13
    Категории отключил, все товары из главной убрал. Может подскажите как глянуть какие запросы идут с главной в mysql?
     
  5. slawikjw

    slawikjw Создатель

    Регистр.:
    6 авг 2011
    Сообщения:
    19
    Симпатии:
    0
    Перейдите в консольный клиент mysql и используйте команды:
    show processlist;
    show status;
     
  6. thekorolev

    thekorolev Постоялец

    Регистр.:
    24 май 2012
    Сообщения:
    113
    Симпатии:
    74
    Куча тем была же, Перейти по ссылке, например. Также советую отрубить поиск и поставить Seo Pro с кэшированием.
     
    Unlimiter нравится это.
  7. Yuriy_Z

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

    Регистр.:
    22 июл 2012
    Сообщения:
    159
    Симпатии:
    91
    Вот самая большая проблема catalog/model/catalog/product.php
    в контролерах ети запросы по несколько раз просятся
     
  8. d1v3r

    d1v3r Создатель

    Регистр.:
    13 дек 2009
    Сообщения:
    33
    Симпатии:
    5
    Эмм, сори за оффтоп, но не маловато ли оперативы? Почему бы не добавить?
     
    Unlimiter нравится это.
  9. maxim nestoff

    maxim nestoff Создатель

    Регистр.:
    23 апр 2009
    Сообщения:
    182
    Симпатии:
    13
    Путем экспериментов было выявлено, что проблемы возникают когда на сайт загрузить категории (таблица oc_category).
    Кстати, вот конфиг сервера
    PIII-500Mhz
    512Mb SDRAM (4x128)
    60gb hdd
    Старое барахло, я знаю, но другого пока не могу себе позволить. Этого достаточно для работы скрипта с таким колл товара?

    Что там нужно изменить?




    Может подскажите, что за модуль?

    upd. Вот логи медленных mysql запросов:
    Код:
    # Time: 130430 12:51:43
    # User@Host: zoomarket[zoomarket] @ localhost []
    # Query_time: 2.476169  Lock_time: 0.000635 Rows_sent: 1  Rows_examined: 58327
    SET timestamp=1367315503;
    SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id)  LEFT JOIN oc_product_special ps ON (p.product_id = ps.product_id)  WHERE  pd.language_id = '2' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '260';
    
    Версия OC 1.5.5.1'
     
  10. Yuriy_Z

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

    Регистр.:
    22 июл 2012
    Сообщения:
    159
    Симпатии:
    91
    Етого мало тебе, такой проц ето убийство

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