Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Приветствую

Интернет-магазин на Битриксе вдруг стал сильно нагружать сервер и тормозить.

Причем раньше такого небыло.  Бекап сайта на дату когда было все нормально не помог. 

Трафик на сайт обычный 100-200 человек в день.

Тех поддержка хостинга  проанализировала , говорит что  много запросов на БД SQL надо оптимизировать или битркис и базу.

Сообщение от поддержки:

mysql> explain SELECT DISTINCT BS.ID AS ID, BS.DEPTH_LEVEL AS DEPTH_LEVEL, BS.NAME AS NAME, B.SECTION_PAGE_URL AS SECTION_PAGE_URL, BS.SORT AS SORT, BS.PICTURE AS PICTURE, BS.DETAIL_PICTURE AS DETAIL_PICTURE, BS.CODE AS CODE, BS.XML_ID AS EXTERNAL_ID, B.IBLOCK_TYPE_ID AS IBLOCK_TYPE_ID, BS.IBLOCK_ID AS IBLOCK_ID, B.CODE AS IBLOCK_CODE, B.XML_ID AS IBLOCK_EXTERNAL_ID, BS.GLOBAL_ACTIVE AS GLOBAL_ACTIVE, BS.LEFT_MARGIN AS LEFT_MARGIN,COUNT(DISTINCT BE.ID) as ELEMENT_CNT, BUF.UF_PHOTO FROM b_iblock_section BS INNER JOIN b_iblock B ON BS.IBLOCK_ID = B.ID LEFT JOIN b_uts_iblock_28_section BUF ON BUF.VALUE_ID = BS.ID INNER JOIN b_iblock_section BSTEMP ON BSTEMP.IBLOCK_ID = BS.IBLOCK_ID LEFT JOIN b_iblock_section_element BSE ON BSE.IBLOCK_SECTION_ID=BSTEMP.ID LEFT JOIN b_iblock_element BE ON (BSE.IBLOCK_ELEMENT_ID=BE.ID AND ((BE.WF_STATUS_ID=1 AND BE.WF_PARENT_ELEMENT_ID IS NULL ) AND BE.IBLOCK_ID = BS.IBLOCK_ID ) AND BE.ACTIVE='Y' AND (BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM = BS.LEFT_MARGIN AND BSTEMP.RIGHT_MARGIN = 'R' AND (IBG.PERMISSION='X' OR B.ACTIVE='Y') ) OR (B.RIGHTS_MODE = 'E' AND EXISTS ( SELECT SR.SECTION_ID FROM b_iblock_section_right SR INNER JOIN b_iblock_right IBR ON IBR.ID = SR.RIGHT_ID INNER JOIN b_user_access UA ON UA.ACCESS_CODE = IBR.GROUP_CODE AND UA.USER_ID = 0 WHERE SR.SECTION_ID = BS.ID AND IBR.OP_SREAD = 'Y' )) )) GROUP BY BS.ID, B.ID ORDER BY BS.LEFT_MARGIN asc;

+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+

| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |

+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+

| 1 | PRIMARY | B | NULL | const | PRIMARY | PRIMARY | 4 | const | 1 | 100.00 | Using temporary; Using filesort |

| 1 | PRIMARY | BS | NULL | ref | ix_iblock_section_1,ix_iblock_section_depth_level,ix_iblock_section_left_margin,ix_iblock_section_right_margin,ix_iblock_section_code | ix_iblock_section_1 | 4 | const | 1417 | 3.33 | Using index condition; Using where |

Aleksey Posevin, [22.06.2022 12:33]

[Forwarded from Aleksey Posevin]

| 1 | PRIMARY | BUF | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.BS.ID | 1 | 100.00 | NULL |

| 1 | PRIMARY | BSTEMP | NULL | ALL | ix_iblock_section_1,ix_iblock_section_depth_level,ix_iblock_section_left_margin,ix_iblock_section_right_margin,ix_iblock_section_code | NULL | NULL | NULL | 1250 | 1.11 | Using where; Using join buffer (Block Nested Loop) |

| 1 | PRIMARY | BSE | NULL | ref | ux_iblock_section_element | ux_iblock_section_element | 4 | iceholodse_ice.BSTEMP.ID | 29 | 100.00 | Using index |

| 1 | PRIMARY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.BSE.IBLOCK_ELEMENT_ID | 1 | 100.00 | Using where |

| 3 | DEPENDENT SUBQUERY | SR | NULL | ref | PRIMARY,ix_b_iblock_section_right_1 | ix_b_iblock_section_right_1 | 4 | iceholodse_ice.BS.ID | 1 | 100.00 | Using index |

| 3 | DEPENDENT SUBQUERY | IBR | NULL | eq_ref | PRIMARY,ix_b_iblock_right_group_code,ix_b_iblock_right_op_eread,ix_b_iblock_right_op_sread | PRIMARY | 4 | iceholodse_ice.SR.RIGHT_ID | 1 | 100.00 | Using where |

| 3 | DEPENDENT SUBQUERY | UA | NULL | ref | ix_ua_user_provider,ix_ua_user_access,ix_ua_access | ix_ua_user_provider | 5 | const | 1 | 10.00 | Using where |

| 2 | DEPENDENT SUBQUERY | IBG | NULL | unique_subquery | ux_iblock_group_1 | ux_iblock_group_1 | 8 | func,const | 1 | 33.33 | Using where |

+----+--------------------+--------+------------+-----------------+---------------------------------------------------------------------------------------------------------------------------------------+-----------------------------+---------+--------------------------------------+------+----------+----------------------------------------------------+

Они отправляются при открытии сайта и переходах между страницами и каждый обходит по 2-3 тысячи строк. Это вызывает нагрузку на MySQL, что в свою очередь создаёт нагрузку на процессор.

mysql> explain SELECT BE.ID as ID,BE.NAME as NAME,BE.IBLOCK_ID as IBLOCK_ID,B.DETAIL_PAGE_URL as DETAIL_PAGE_URL,BE.IBLOCK_SECTION_ID as IBLOCK_SECTION_ID,L.DIR as LANG_DIR,BE.CODE as CODE,BE.XML_ID as EXTERNAL_ID,B.IBLOCK_TYPE_ID as IBLOCK_TYPE_ID,B.CODE as IBLOCK_CODE,B.XML_ID as IBLOCK_EXTERNAL_ID,B.LID as LID , CAT_PR.QUANTITY as CATALOG_QUANTITY, IF (CAT_PR.QUANTITY_TRACE = 'D', 'N', CAT_PR.QUANTITY_TRACE) as CATALOG_QUANTITY_TRACE, CAT_PR.QUANTITY_TRACE as CATALOG_QUANTITY_TRACE_ORIG, CAT_PR.WEIGHT as CATALOG_WEIGHT, CAT_PR.VAT_ID as CATALOG_VAT_ID, CAT_PR.VAT_INCLUDED as CATALOG_VAT_INCLUDED, IF (CAT_PR.CAN_BUY_ZERO = 'D', 'N', CAT_PR.CAN_BUY_ZERO) as CATALOG_CAN_BUY_ZERO, CAT_PR.CAN_BUY_ZERO as CATALOG_CAN_BUY_ZERO_ORIG, CAT_PR.PURCHASING_PRICE as CATALOG_PURCHASING_PRICE, CAT_PR.PURCHASING_CURRENCY as CATALOG_PURCHASING_CURRENCY, CAT_PR.QUANTITY_RESERVED as CATALOG_QUANTITY_RESERVED, IF (CAT_PR.SUBSCRIBE = 'D', 'Y', CAT_PR.SUBSCRIBE) as CATALOG_SUBSCRIBE, CAT_PR.SUBSCRIBE as CATALOG_SUBSCRIBE_ORIG, CAT_PR.WIDTH as CATALOG_WIDTH, CAT_PR.LENGTH as CATALOG_LENGTH, CAT_PR.HEIGHT as CATALOG_HEIGHT, CAT_PR.MEASURE as CATALOG_MEASURE, CAT_PR.TYPE as CATALOG_TYPE, CAT_PR.AVAILABLE as CATALOG_AVAILABLE, CAT_PR.BUNDLE as CATALOG_BUNDLE, CAT_PR.PRICE_TYPE as CATALOG_PRICE_TYPE, CAT_PR.RECUR_SCHEME_LENGTH as CATALOG_RECUR_SCHEME_LENGTH, CAT_PR.RECUR_SCHEME_TYPE as CATALOG_RECUR_SCHEME_TYPE, CAT_PR.TRIAL_PRICE_ID as CATALOG_TRIAL_PRICE_ID, CAT_PR.WITHOUT_ORDER as CATALOG_WITHOUT_ORDER, CAT_PR.SELECT_BEST_PRICE as CATALOG_SELECT_BEST_PRICE, IF (CAT_PR.NEGATIVE_AMOUNT_TRACE = 'D', 'N', CAT_PR.NEGATIVE_AMOUNT_TRACE) as CATALOG_NEGATIVE_AMOUNT_TRACE, CAT_PR.NEGATIVE_AMOUNT_TRACE as CATALOG_NEGATIVE_AMOUNT_TRACE_ORIG, CAT_VAT.RATE as CATALOG_VAT FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID left join b_catalog_product as CAT_PR on (CAT_PR.ID = BE.ID) left join b_catalog_iblock as CAT_IB on ((CAT_PR.VAT_ID IS NULL or CAT_PR.VAT_ID = 0) and CAT_IB.IBLOCK_ID = BE.IBLOCK_ID) left join b_catalog_vat as CAT_VAT on (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID)) WHERE 1=1 AND ( ((((BE.ACTIVE='Y')))) AND ( ( ( (BE.ID IN ( SELECT FPV0.VALUE_NUM FROM b_iblock B INNER JOIN b_lang L ON B.LID=L.LID INNER JOIN b_iblock_element BE ON BE.IBLOCK_ID = B.ID LEFT JOIN b_iblock_property FP0 ON FP0.IBLOCK_ID = B.ID AND FP0.CODE='CML2_LINK' LEFT JOIN b_iblock_element_property FPV0 ON FPV0.IBLOCK_PROPERTY_ID = FP0.ID AND FPV0.IBLOCK_ELEMENT_ID = BE.ID left join b_catalog_product as CAT_PR on (CAT_PR.ID = BE.ID) left join b_catalog_iblock as CAT_IB on ((CAT_PR.VAT_ID IS NULL or CAT_PR.VAT_ID = 0) and CAT_IB.IBLOCK_ID = BE.IBLOCK_ID) left join b_catalog_vat as CAT_VAT on (CAT_VAT.ID = IF((CAT_PR.VAT_ID IS NULL OR CAT_PR.VAT_ID = 0), CAT_IB.VAT_ID, CAT_PR.VAT_ID)) WHERE 1=1 AND ( (((BE.ACTIVE_TO >= now() OR BE.ACTIVE_TO IS NULL) AND (BE.ACTIVE_FROM

Aleksey Posevin, [22.06.2022 12:33]

[Forwarded from Aleksey Posevin]

+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+

| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra |

+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+

| 1 | PRIMARY | L | NULL | ALL | PRIMARY | NULL | NULL | NULL | 1 | 100.00 | NULL |

| 1 | PRIMARY | B | NULL | ALL | PRIMARY | NULL | NULL | NULL | 22 | 10.00 | Using where; Using join buffer (Block Nested Loop) |

| 1 | PRIMARY | BE | NULL | ref | ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | ix_iblock_element_1 | 4 | iceholodse_ice.B.ID | 2099 | 0.50 | Using where |

| 1 | PRIMARY | CAT_PR | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.BE.ID | 1 | 100.00 | Using where |

| 1 | PRIMARY | CAT_IB | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.B.ID | 1 | 100.00 | Using where |

| 1 | PRIMARY | CAT_VAT | NULL | ALL | PRIMARY | NULL | NULL | NULL | 3 | 100.00 | Using where; Using join buffer (Block Nested Loop) |

| 3 | DEPENDENT SUBQUERY | L | NULL | index | PRIMARY | PRIMARY | 6 | NULL | 1 | 100.00 | Using index |

| 3 | DEPENDENT SUBQUERY | FP0 | NULL | ref | PRIMARY,ix_iblock_property_1,ix_iblock_property_2 | ix_iblock_property_2 | 153 | const | 2 | 100.00 | Using where |

| 3 | DEPENDENT SUBQUERY | B | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 10.00 | Using where |

| 3 | DEPENDENT SUBQUERY | FPV0 | NULL | ref_or_null | ix_iblock_element_property_1,ix_iblock_element_property_2,ix_iblock_element_prop_num | ix_iblock_element_prop_num | 14 | func,iceholodse_ice.FP0.ID | 42 | 100.00 | Using index condition; Using where |

| 3 | DEPENDENT SUBQUERY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 5.00 | Using where |

| 2 | DEPENDENT SUBQUERY | L | NULL | index | PRIMARY | PRIMARY | 6 | NULL | 1 | 100.00 | Using index |

| 2 | DEPENDENT SUBQUERY | FP0 | NULL | ref | PRIMARY,ix_iblock_property_1,ix_iblock_property_2 | ix_iblock_property_2 | 153 | const | 2 | 100.00 | Using where |

| 2 | DEPENDENT SUBQUERY | B | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 10.00 | Using where |

| 2 | DEPENDENT SUBQUERY | FPV0 | NULL | ref | ix_iblock_element_property_1,ix_iblock_element_property_2,ix_iblock_element_prop_num | ix_iblock_element_prop_num | 14 | func,iceholodse_ice.FP0.ID | 21 | 100.00 | Using index condition; Using where |

| 2 | DEPENDENT SUBQUERY | CAT_PR | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 10.00 | Using where |

| 2 | DEPENDENT SUBQUERY | BE | NULL | eq_ref | PRIMARY,ix_iblock_element_1,ix_iblock_element_4,ix_iblock_element_3,ix_iblock_element_code | PRIMARY | 4 | iceholodse_ice.FPV0.IBLOCK_ELEMENT_ID | 1 | 5.00 | Using where |

| 2 | DEPENDENT SUBQUERY | CAT_IB | NULL | eq_ref | PRIMARY | PRIMARY | 4 | iceholodse_ice.FP0.IBLOCK_ID | 1 | 100.00 | Using where |

| 2 | DEPENDENT SUBQUERY | CAT_VAT | NULL | eq_ref | PRIMARY | PRIMARY | 4 | func | 1 | 100.00 | Using where; Using index |

+----+--------------------+---------+------------+-------------+--------------------------------------------------------------------------------------------+----------------------------+---------+---------------------------------------+------+----------+----------------------------------------------------+

2 года назад
Genus
33 годаРоссия
14 лет в сервисе
Был
день назад
  • Похожие заказы
  • Здравствуйте, на python запаковать этот модуль: [url=https://github.com/Mehavoid/yt-dlp/tree/fix-vk-video]https://github.com/Mehavoid/yt-dlp/tree/fix-vk-video[/url] С помощью: import sys sys.path.insert(0, './yt-dlp') from yt_dlp import YoutubeDL https://stackoverflow.com/questions/55505023/how-to-import-a-module-from-local-directory-rather-than-pip-installed-library

    Закрыт
    2 года назад
  • Есть интернет магазин https://climatplus.com.ua/ Нужно доработать хлебные крошки. При выборе товара нужно добавить подкатегорию в которой он находиться и производитель Сейчас выглядит вот так [url=http://joxi.ru/MAjvEPoidJEQGA]http://joxi.ru/MAjvEPoidJEQGA[/url] Нужно сделать что бы было вот так [url=http://joxi.ru/52aGgjzhlRBn0r]http://joxi.ru/52aGgjzhlRBn0r[/url] Жду сроки и цену, рассматриваю ...

    Закрыт
    2 года назад
  • Требуется фронт-енд программист на проект Laravel. Ожидаем как минимум на 1-2 месяца, возможно дальнейшее постоянное сотрудничество (штат). Возможна помощь с релокацией в Польши и (или) Испанию. PHP + mysql, Postgre. Очень желательно понимание VUE.js Желание обучаться. Мы ...

    Закрыт
    2 года назад
  • Необходимо восстановить и переписать предоставленyю программу написанную на языке JAVA, предназначенную для получения данных с Fusion Solar ([url=https://eu5.fusionsolar.huawei.com/thirdData/login]https://eu5.fusionsolar.huawei.com/thirdData/login[/url]). Программа, после запуска, должна получать и сохранять в текстовой (.txt) файл следующие данные: Lifetime Energy(MWh) Current ...

    Закрыт
    2 года назад
  • Технологии: React.js + TypeScript + GitHub API issues Здравствуйте, требуется разработать приложение, которое будет получать данные из API github issues. В проекте должна быть регистрация и авторизация. Регистрация Регистрация очень простая, пользователь должен указать: [list=1][*]Имя[*]Пароль[*]GitHub аккаунт[/list] После регистрации, пользователь попадает ...

    Завершен
    2 года назад
  • Админ панель с авторизацией по логину и паролю,без возможности регестрации,добавление новых пользователей только админом,через админку. Функционал:таблица(похожая на гугл) + аналитика по параметрам и возмоностью добавления новых таблиц по аналогии. Таблица будет содержать 5 колонок 1 колонка содержание ...

    Закрыт
    2 года назад
  • Требуется создать телеграм бота, который: будет следить за выбранными твиттерами; будет парсить сообщения, а также reply в виде скриншотов (при помощи сервиса tweetpik.com через API) будет переводить текст на русский язык (за исключением хэштегов и имен пользователей) владелец ...

    Закрыт
    2 года назад
  • Есть выгрузка проекта с Tilda, около 24 страниц Что нужно 1. Восстановить внутреннюю перелинковку между страницами. 2. Настроить работу форм на отправку уведомлений на email

    Закрыт
    2 года назад
  • Необходимо разработать бота, который будет в автоматическом режиме торговать на криптовалютной бирже по постам из твиттера. Бот должен открывать сделки: - по ключевым словам; - по картинкам, где есть ключевые слова; - по картинкам, где изображены определённые объекты. Отклики оставляйте ...

    Закрыт
    2 года назад
  • $10

    Нужно создать легкого бота в тг, в котором пользователи могут приглашать людей и получать за это деньги, можете использовать готовый скрипт, если найдете, исправить только название.

    Закрыт
    2 года назад