Добрый вечер. Вот зашла к себе на сайт и увидела неприятную вещь. Что это может быть и с чем связано? Подскажите, пожалуйста.. Вот ссылка на сайт http://www.babysun.com.ua/index.php
Лично у меня сайт отображается корректно. Наверное, стоит приложить скриншот с указанием ошибки, а также указать браузер, в котором проявляется "неприятная вещь".
Вот проверила, что обычный зарегистрированный пользователь может ходить по сайту, для него всё нормально, а только я его назначила администратором, то и у него такая же проблема. В чем может быть дело?
ошибка, думаю, вот где FILE: /usr/local/www/data/kamkom/apache/klients/babysun.com.ua/bitrix/modules/iblock/classes/mysql/iblocksection.php LINE: 246 Хоть примерно напишите, это какие-то проблемы на сервере? А то программист молчит....Или надо в поддержку обращаться?
FILE: /usr/local/www/data/kamkom/apache/klients/babysun.com.ua/bitrix/modules/iblock/classes/mysql/iblocksection.php LINE: 246 MySQL Query Error: SELECT DISTINCT BS.*, B.LIST_PAGE_URL, B.SECTION_PAGE_URL, B.IBLOCK_TYPE_ID, B.CODE as IBLOCK_CODE, B.XML_ID as IBLOCK_EXTERNAL_ID, BS.XML_ID as EXTERNAL_ID, DATE_FORMAT(BS.TIMESTAMP_X, '%d.%m.%Y %H:%i:%s') as TIMESTAMP_X, DATE_FORMAT(BS.DATE_CREATE, '%d.%m.%Y %H:%i:%s') as DATE_CREATE, COUNT(DISTINCT BE.ID) as ELEMENT_CNT FROM b_iblock_section BS INNER JOIN b_iblock B ON BS.IBLOCK_ID = B.ID LEFT JOIN b_iblock_group IBG ON IBG.IBLOCK_ID=B.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 <= now() OR BE.ACTIVE_FROM IS NULL)) WHERE 1=1 AND BSTEMP.IBLOCK_ID = BS.IBLOCK_ID AND BSTEMP.LEFT_MARGIN >= BS.LEFT_MARGIN AND BSTEMP.RIGHT_MARGIN <= BS.RIGHT_MARGIN AND ((((BS.ACTIVE='Y')))) AND ((((BS.IBLOCK_ID = '2')))) AND ((((BS.DEPTH_LEVEL <= '2')))) AND ((((B.ID = '2')))) GROUP BY BS.ID, B.ID ORDER BY BS.LEFT_MARGIN asc [Incorrect key file for table '/var/tmp/#sql_3a1_0.MYI'; try to repair it]
Алёна Тимошенко пишет: скажите ещё а чем это вызвано, почему так получилось?
На этой странице вызывается компонент, который генерит запрос к БД, который требует очень много памяти для своего исполнения. Если не ошибаюсь, это компонент catalog.section.list с включенным подсчётом элементов в разделах. Увы, подсчёт количества элементов в разделах является слабым местом битрикса.
Есть способ обойти это слабое место битрикса, но он годится только для тех случаев, когда элементы привязаны только к одному разделу.
Dmitry Ban пишет: На этой странице вызывается компонент, который генерит запрос к БД, который требует очень много памяти для своего исполнения. Если не ошибаюсь, это компонент catalog.section.list с включенным подсчётом элементов в разделах. Увы, подсчёт количества элементов в разделах является слабым местом битрикса.
Есть способ обойти это слабое место битрикса, но он годится только для тех случаев, когда элементы привязаны только к одному разделу.
не парьтесь с этим компонентом, если он у вас стоит он тяжеловат и держать его на всех страницах шаблона не рекомендуется
выходов два: 1. отказ от показа количества и включение кеширования - получите небольшой выигрыш в производительности также можно создать свой компонент, можно поучить еще больший выигрыш (мы делали выиграв в скорости работы запроса в 1000 раз, часть функционала при этом пришлось потерять, пожертвовали количеством зато не жалеем) 2. в случае невозможности отказа от показа количества придется попотеть и сделать доп поле в секциях в которое с помощью управления событифми можно запрограммировать автоматом прописывать количество элементов (компонент также придется кастомизировать)
Цитата
Dmitry Ban пишет: Увы. Тогда остаются только настройки серверного окружения. Здесь сложно давать какие-то конкретные советы, нужно разбираться по месту.
еще раз скажу, что использование компонента bitrix.section.list в качестве меню - не рекомендуется у вас действительно будет за счет этого слабое место на каждой странице проекта крутить изза этого компонента сервер глупо и не факт что поможет
попробуйте для начала включить замер производительности посмотреть на результаты, затем отключить показ количества, и включить кеширование и посмотреть на время создания компонента если работа устроит, можно на этом остановиться хотя при большом увеличении количества элементов в инфоблоках (речь идет конечно о тысячах или десятках тысяч) тормозить будет все больше и больше
мой совет - избавиться от этого слабого места в проекте