Тормозит 2.3.0.2 чуть больше 5000 товаров

Тема в разделе "Ошибки и их решения", создана пользователем DiNoZavr, 28 июл 2017.

  1. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    Я к счастью даже не имею никакой возможности что-то вам сунуть или подсунуть, да и не собирался, не мой метод общения...
    Модуль http://shop.opencart-russia.ru/analizator-sql-zaprosov при запуске создает /system/storage/logs/db_debug.txt
    Поскольку из вашего текста не понял ничего, то решил действовать по методу другого Дружкова, и пришел к выводу, что db_debug.txt именно то, что вы просите, но видимо мои экстрасенсорные способности оказались слабее ваших загадок...
    Прошу вас при возможности помочь, если сами не знаете, то оставить тему, может найдется добрый человек, который найдет причину...
    Относительно оптимизации, то если найдется причина, то сразу ответу лично Вам, смогу оптимизировать или нет...
     
  2. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Так если вы не поняли, то переспросите

    Что я не так написал
     
  3. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    Не вижу смысла переспрашивать, так как исходя из формы общения уже видно, что ваша цель не помочь, а наоборот нафлудить в теме, чтобы желающий ничего не понял, кто чей родственник...
    Если я ошибаюсь, то расскажите, какой смысл цитировать то, на что вам в предыдущем ответа уже сказали что это непонятно...????
     
  4. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Для того чтоб вам помочь, вы должны делать это сами, и думать над тем что делаешь
    Вы сами хотите сделать?
    Или хотите чтобы вас как слепого провели. так поверьте, и слепые могут ходить самостоятельно.

    помощь подразумевает - помощь, а не сделать за вас.
    а вы не копирка, а я не печатная машинка.

    Еще раз..
    непонятно? Спросите
    Понятно? Сделайте
    Иначе - да флуд, не по моей вине, а по вашей лени.

    Отучитесь искать готовые ответы. Научитесь искать ответы в ответах.
     
  5. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    Что такое " DIR_LOGS.'db_debug_' " ?

    Это - " /system/storage/logs/db_debug_ " ?
     
  6. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Да, там имя файла сложное неизвестное
     
  7. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    Попытка номер два
    Прошу
    Сайт открыт, поэтому только свой запрос не смогу показать....
     

    Вложения:

  8. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    1. Ну вот чистой воды бред
    SELECT redirect, language_id FROM oc_url_absolute WHERE query = 'product/category&path=61' LIMIT 1
    SELECT keyword FROM oc_url_alias WHERE `query` = 'route=product/category'
    SELECT * FROM oc_url_alias WHERE `query` = 'category_id=61'

    Два запроса!!! на одну категорию - бред!!!
    Какой модуль?


    запросы для списков категорий, иногда летают, иногда выпадают в сильный тормоз
    SELECT * FROM oc_category c LEFT
    Надо смотреть тормознтуые

    Сильно тормознутых запросов нет
    но в сумме набегает
     
  9. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    Ну а как так вышло? с чем это может быть связано?
    Модуль Complete seo package
     
  10. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    А вот с чем связано, нужно смотреть
    Может быть эти категории содержат под категории, но почему тогда такой резкий скачок

    Это надо исследовать, строить план запросов смотреть профайл
     
  11. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    Да, на сайте всего 26 категорий 155 подкатегорий
     
    Последнее редактирование: 10 авг 2017
  12. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    В логах в админке появляются вот такие ошибки:
    Код:
    2017-08-10 13:33:07 - PHP Notice:  Undefined index: description in /data/vhost/domain.ru/catalog/view/theme/theme/template/extension/module/banner.tpl on line 10
    2017-08-10 13:33:07 - PHP Notice:  Undefined index: description in /data/vhost/domain.ru/catalog/view/theme/theme/template/extension/module/banner.tpl on line 10
    2017-08-10 13:33:07 - PHP Notice:  Undefined index: description in /data/vhost/domain.ru/catalog/view/theme/theme/template/extension/module/banner.tpl on line 10
    2017-08-10 13:33:13 - PHP Notice:  Undefined index: description in /data/vhost/domain.ru/catalog/view/theme/theme/template/extension/module/banner.tpl on line 10
    2017-08-10 13:33:13 - PHP Notice:  Undefined index: description in /data/vhost/domain.ru/catalog/view/theme/theme/template/extension/module/banner.tpl on line 10
    2017-08-10 13:33:13 - PHP Notice:  Undefined index: description in /data/vhost/domain.ru/catalog/view/theme/theme/template/extension/module/banner.tpl on line 10
    Может это как-то прояснит ситуацию, вот содержимое:
    Код:
        <div id="banner<?php echo $module; ?>" class="banners">
            <?php foreach ($banners as $banner) { ?>
            <?php if ($banner['link']) { ?>
            <div class="<?php echo $banner['title']; ?>">
                <div class="banner-box">
                    <a class="clearfix" href="<?php echo preg_replace('/(http|https)\:\/\/(.*)\/index\.php\?route=(.*)\//iUsu', '/', $banner['link']); ?>">
                        <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" />
                    </a>
                        <?php if ($banner['description']) { ?>
                        <div class="s-desc"><?php echo $banner['description']; ?></div>
                        <?php } ?>              
                </div>
            </div>
            <?php } else { ?>
            <div class="<?php echo $banner['title']; ?>">
                <div class="banner-box">
                    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" />
                    <?php if ($banner['description']) { ?>
                    <div class="s-desc"><?php echo $banner['description']; ?></div>
                    <?php } ?>
                </div>
            </div>
            <?php } ?>
            <?php } ?>
        </div>
    Вот 10 строка:
    Код:
                        <?php if ($banner['description']) { ?>
     
    Последнее редактирование: 10 авг 2017
  13. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    Эти ошибки на производительность не влияют
     
  14. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Пойду посмотрю у себя, у меня подобный модуль стоит.
     
  15. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Да, модуль делает лишние запросы. :) На сколько я знаю, можно врубить кэш и даже отдельный модуль на форме V2pagecache

    С Complete SEO Package OpenCart 2.3.2
    Код:
    SELECT * FROM `*_url_alias` AS `ua` WHERE `query` IN('category_id=X')
    SELECT * FROM *_url_alias u left join *_category c on c.category_id = REPLACE(u.query, 'category_id=', '') WHERE u.keyword = 'alias' AND c.parent_id = 'X'
    SELECT * FROM *_url_alias WHERE keyword = 'category-alias' OR keyword = 'category-alias'
    Без модуля OpenCart 2.3.2
    Код:
    SELECT * FROM oc_url_alias WHERE `query` = 'category_id=X'
    SELECT * FROM oc_url_alias WHERE keyword = 'desktops'
     
  16. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    По сути - получаем алиасы какого-то списка
    Нужно смотреть метод вызыова


    Спорный запрос - не совсем понимаю, его необходимость
    Код:
    SELECT * FROM oc_url_alias u
    join oc_category c on c.category_id = REPLACE(u.query, 'category_id=', '')
    WHERE
    c.parent_id = '20';
    Вот в таком виде - мы получим все существующие алиасы подкатегорий

     
  17. DiNoZavr

    DiNoZavr Пользователь

    Сообщения:
    136
    Симпатии:
    10
    V2pagecache - установлен, именно он сейчас спасает сайт...
    Если деинсталировать Complete SEO Package, то особых изменений в скорости не наблюдается, а если они и есть, то незначительные... Разработчик Complete SEO Package уверяет что дело не в его модуле...
    Сегодня даже пробовал в phpmyadmin отчищать таблицу oc_url_alias, идиотизм, но мало ли...

    Кстати, о чем я говорил ранее, иногда сайт начинает гораздо быстрее подгружаться, вот допустим сейчас, непонятно почему, но обработка страниц примерно 3 сек.
     

    Вложения:

    Последнее редактирование: 11 авг 2017
  18. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    У вас как минимум два лишних запроса, которые повторяются по сотне раз,

    Я указал где и какие

    Да, сейчас нет запросов с временем >0.1 , но суммарное время очень большое
     
  19. solunski.d

    solunski.d Эксперт

    Сообщения:
    1.569
    Симпатии:
    432
    Давайте начнем с простого, с учетом того что вам тяжело оптимизировать запросы SQL, пойдем к более простому и закончим трудное в конце.

    Поставьте LazyLoad для изображений, на главной и на странице категории. LazyLoad это подзагрузка изображений при каком либо действий, в данном случае нас интересует прокрутка. Готовых JavaScript'ов куча.

    Так же, из за js скриптов обработка страницы может быть большой, с учетом того что у вас есть модули и не только Complete SEO но и Blog и другие, то лучший вариант, отключить кое какие модули и посмотреть на изменения в скорости.

    Наверняка у вас есть всякие разные модули на главной странице, типа "Слайдер", "Рекомендованные товары" и т.д.
    А что если будем их подгружать через AJAX, мы этим сократим запросы и увеличим загрузку сайта и эффект полезен не только для клиентов, но и для поисковых машин :)
     
  20. Chukcha

    Chukcha Специалист

    Сообщения:
    3.013
    Симпатии:
    685
    solunski.d не совсем так
    1. У него идет нагрузка на сервер, а не на клиентскую часть, поэтому оптимизация описанная вами, на данный момент не нужна
    2. Судя по логам, там нет обращения к каким либо блогам

    Уменьшим нагрузку, но будет ли Я ходить по ссылкам загруженного аяксом контента. Ведь такие модули - это часть перелиноквки

    Основная проблема - наличие бессмысленных, на мой взгляд, запросов