Вход • Регистрация

Тяжелые запросы к базе данных

  • 08 июля 2023 г.
  • Всех приветсвую,
    После недавнего сбоя и восстановления был сброшен кеш и запушена переиндексация поиска по товарам на сайте.
    Сайт жутко тормозит, некоторые разделы не открываются. Те что открываются не содержат всех фильтров.
    В админке так же наблюдаются проблемы с работой Каталога, при выборе показа Всех товаров они не отображаются + исчезают меню админки.
    Если выбрать конкретную категорию товаров, то все норм.

    В техподдержке хоста написали, что огромная нагрузка на БД и мол ждите ее снижения.
    # Query_time: 126.335719 Lock_time: 0.000141 Rows_sent: 0 Rows_examined: 59433814

    Сайт не работает уже неделю, чую что то не то.
    Вопрос к знатокам - можно как то это поправить, ускорить?

    P.S. Параллельно написал в поддержку хостинга и поддержку Diafan - жду ответ.
    P.S. Сайт большой более 100к товаров, куча разных характеристик (реально разных - сайт стройматериалов). Читал гдето на форуме о подобной проблеме с неработающим сайтом для версии 6х, что это может быть из-за большого числа характеристик, но вроде поправили это дело или нет?
    • 10 июля 2023 г.
    • Хостинге спросите лог медленных запросов. Или сами в PMA или adminer гляньте, там видно какие запросы больше всего выполняются. Видно будет к каким таблицам запросы, в shop_param, search_index ли или ещё куда-то. Оттуда плясать уже можно

      Там ещё ошибки есть
      Цитата

      Warning: Invalid argument supplied for foreach() in /optimalstroy.ru/includes/custom.php on line 284
      попробуйте РНР 7.2 понизить
      • 10 июля 2023 г.
      • И также попробуйте папку /custom/ в /custom2/ временно переименовать, чтобы тема не участвовала, и без неё покрутить сайт, как себя вести будет
        • 10 июля 2023 г.
        • у меня и тот и этот вариант не помогает
          - во втором случаи при переходе в категорию - задумывается и белый чистый экран
          • 10 июля 2023 г.
          • Тогда врубать логи и смотреть медленные запросы в базе
            • 10 июля 2023 г.
            • прикол в том, что не увидел таких))))
              • 10 июля 2023 г.
              • Цитата
                прикол в том, что не увидел таких)))

                Так там что-то с РНР, значит, памяти или процессора не хватает. Когда белый экран, смотрите логи апача. И/или nginx, если есть.
            • 10 июля 2023 г.
            • вот (категорий на сайте примерно 300)
              • 10 июля 2023 г.
              • Ну во-первых, десяток строк можно было скопипастить и прямо так, без xlsx+zip+вложение, вот так:
                Код
                0.00007725 SELECT param_id, param_value FROM `diafan_shop_price_param` WHERE price_id=1875
                0.00011650 SELECT param_id, value1 AS value FROM `diafan_shop_param_element` WHERE element_id=835 AND param_id IN (8,15)
                0.00006550 SELECT image_id FROM `diafan_shop_price_image_rel` WHERE price_id=1875 LIMIT 1
                0.00011400 SELECT id, name1 AS name, site_id FROM `diafan_shop_brand` WHERE trash='0' AND act1='1' AND id IN (1)
                0.00035475 SELECT * FROM `diafan_rewrite` WHERE trash='0' AND module_name='shop' AND element_type='element' AND element_id IN (854,853,852,847,846,845,844,843,842,841,840,839,838,837,836,835)
                0.00024850 SELECT a.id, a.name1 AS name, a.percent, a.price, a.amount, a.required, r.element_id, r.summ FROM `diafan_shop_additional_cost` AS a INNER JOIN `diafan_shop_additional_cost_rel` AS r ON r.additional_cost_id=a.id WHERE r.element_id IN (858,857,856,855,854,853,852,851,850,849,848,847,846,845,844,843,
                0.00041225 SELECT id, name, alt1 AS alt, title1 AS title, folder_num, module_name, param_id, element_id, element_type FROM `diafan_images` WHERE trash='0' AND module_name='shop' AND ( element_type='element' AND ( param_id=0 AND element_id IN (854,853,852,847,846,845,844,843,842,841,840,839,838,837,836,835)))

                Во-вторых, какие же это *медленные" запросы? Десятитысячные доли секунды - это не тяжёлые запросы. Надо slow_query включить режим отлова, и все длинные и только их отловить
                Все-все не надо )
      • 10 июля 2023 г.
      • Приветствую,
        Переключил на 7.2 - вроде сайт пошустрее стал работать, но всеравно не так быстро как раньше.
        Правильно по логам понимаю, что основные тормоза из-за кучи параметров?
        • 11 июля 2023 г.
        • Вот, уже видно. Да, это значения характеристик с типом выпадающий список отбираются долго. 70 секунд - очень долго. Но 6 секунд ниже тоже много очень, проблема так же со связями с категориями, это когда вместо "Все" выбирают каждую категорию с Ctrl, например. Результат тот же, но нагрузка иная. Может где-то индексы с таблицах отвалились. Может наоборот, нужно поставить по полям, которые отбираются. Вообще, интересно админку глянуть. Давали доступы в поддержку?
          • 11 июля 2023 г.
          • Да в поддержку написал, пока на рассмотрении уже 4 дня )))
          • 11 июля 2023 г.
          • Цитата
            то огда вместо "Все" выбирают каждую категорию с Ctrl, то когда вместо "Все" выбирают каждую категорию с Ctrl

            Ну у меня таких характеристик совсем немного, не парился и выбирал везде "Все" просто в карточах их не заполнял

            Цитата
            Может где-то индексы с таблицах отвалились. Может наоборот, нужно поставить по полям, которые отбираются.Может где-то индексы с таблицах отвалились. Может наоборот, нужно поставить по полям, которые отбираются.

            Тут я не знаю, в базах данных не разбираюсь
  • 10 июля 2023 г.
  • Добрый день!
    Такая же хрень уже как 2 месяца и так же после восстановления из бекапа...(((
  • 12 июля 2023 г. , редакция: 12 июля 2023 г.
  • Развернул копию на другом акаунте хостинга - сайт работает быстро, хотя "медленные запросы к БД так же имеются" но уже на уровне до 3 секунд
    Может както можно "убить" обработку запросов и попробовать снова развернуть копию базы?
    • 13 июля 2023 г.
    • Я постараюсь руки дотянуть завтра, из поддержки доступы возьму, посмотрю, потыкаю )
      Я Дмитрию говорил, я люблю adminer, он старенький, но действенный и наглядный. Там есть "Процессы" и сразу видно, как сайт запускаешь, какие запросы повисают надольше и по ним уже понятно, откуда ноги растут
  • 12 июля 2023 г. , редакция: 12 июля 2023 г.
  • Где то пишут что нагрузку можно снизить путем блокировки доступа к сайту через .htaccess deny from all, и после того как нагрузка спадет, можно попробовать оптимизировать запросы.
    Но что то не особо хочется блочить сайт чтоб проверить теорию.
  • 13 июля 2023 г.
  • Вчера заблочил сайт ночью на 4 часа через .htaccess deny from all.htaccess deny from all
    Нагрузка на БД упала до нуля, как включил снова выросла и сайт тормозит.
  • 13 июля 2023 г. , редакция: 13 июля 2023 г.
  • Решил проблему переносом сайта на другой сервер с более новым оборудованием (картинка справа)
    Причину почему не работает на старом серваке так и не смоги определить ни силами поддержки Диафан, ни силами поддержки хостинга.
    • 14 июля 2023 г.
    • Давайте перейдем в тикет, там разберемся.

      Цитата
      Причину почему не работает на старом серваке так и не смоги определить

      У меня, кстати, недавно так было, при почти нулевой посещаемости нагрузка на CPU 105% и ttfb 10+ секунд. Причем даже не VDS, физическая машина! Я вообще сидел как дурак глазами хлопал, туда-сюда то одно крутил, то другое, service apach2 stop делаешь, нагрузка 0%. service apache2 start - прыг на 105% и сайт висит. Неделю бился, не мог понять корни, потом между делом тыкнул "Обновить webmin", и он все пакеты обновлений Apache nginx за собой подтянул и после перезагрузки опа, тишь и благодать. Заработало как пуля. Я ничего не понял, но вздохнул, плечами пожал, заработало и ладно )
  • 13 июля 2023 г.
  • Оставил для экспериманта копию на старом серваке, попробую разобраться.

    - Обновил копию до последней версии,
    - пробовал менять PHP на 7.0, 7.2, 7.4, 8.0
    - сбросил кеш в админке,
    - запустил Восстановление БД из админки,
    - запустил Проверку оптимизации Таблиц БД цен товаров,
    Результата нет (((
    • 14 июля 2023 г.
    • Проверь в настройках магазина - отключен показ товаров в подкатегориях или нет
      - я отрубил, и выиграл прилично в скорости загрузки страницы категории товаров

      https://skr.sh/sKodUyhqFAO?a
      • 26 июля 2023 г.
      • Нет тут дело не в этом явно было, тем более эта настройка у меня была отключена.
        Скорее всего старая версия SQL плохо работает обновлениями и большим кол-вом товаров.
        Если обновлений не ставить то все норм.
        • 26 июля 2023 г. , редакция: 26 июля 2023 г.
        • День добрый!
          - вы правы, нашёл медленный запрос и переписал
          в итоге в 25 раз быстрей и загрузка страницы даже вписывается в зелёную зону при тесте загрузки страницы
          • 11 августа 2023 г.
          • Приветствую.
            Можно наводку, где искать медленный запрос?
            И как решить проблему, по-ходу, это проблема системная. На нескольких хостингах сайты кушают ресурсы.
            Хотя, ранее, такого не наблюдалось.
            • 11 августа 2023 г.
            • можно глянуть через профилирование запросов (в настройках сайта врубается...)

              и ещё план такой ....
              1) проверить без модулей и шаблона
              2) подрубить шаблон если всё нормально в 1-ом пункте
              3) если 2й пункт так же в порядке - добавляем сторонние модули....

              если явно нагружаемого 1го запроса нет а что то в совокупности и попробовать локализовать..... зону поиска


              ПЕРВЫМ делом на PHP 7.2 уйдите
            • 11 августа 2023 г.
            • Самый прожорливый модуль - "Посещаемость" с защитами от ботов. Он надувает таблицу сессий и со временем она пухнет донельзя. Гляньте первым делом её, отсортируйте таблицы по размеру, она если первая, очистите. Через сессии вся работа цмс идёт и когда там миллионы, закономерно тормозит.
              • 11 августа 2023 г. , редакция: 11 августа 2023 г.
              • В моём случаи был модуль выводящий иконки характеристик
                на карточке товара , одной модели - от разных товаров (как модификации)


                на карточке товара фильтр не работает же.... (чтоб узабилити увеличить и облегчить подбор)
  • 06 августа 2023 г.
  • Так же заметил, что даже последняя версия CMS плохо работает с PHP 8.x - появляются медленные запросы к базе данных и собственно нагрузка на нее.
    С версией 7.4 полет нормальный.
    • 07 августа 2023 г.
    • Цитата
      плохо работает

      Цитата
      медленные запросы

      Очень общие слова )

Новости

  • 24 апреля, среда
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 
  • 15 декабря 2023 г.
  • Подводим итоги 2023 года. Выпустили новую сборку DIAFAN.CMS 7.1.1, вводим новые тарифы на аренду сайта и коммерческую поддержку и автообновления с января 2024 г., строим планы на будущий год.