Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Назад в раздел
то ждем ваше обращение в нашей службе тех поддержки.
План действий при проблемах
При возникновении проблем в работе проекта для их устранения рекомендуем воспользоваться следующим алгоритмом:
- Ставьте перед собой конкретную цель. Так как процесс оптимизации, улучшения – бесконечный. Например: каждая страница с каталогом ваших товаров должна открываться за определенное время, скажем 0,2 секунды. Только установка таких конкретных целей и их решение может быть эффективна, в отличие от неясных и формализованных пожеланий, "чтобы лучше работало".
- С помощью страницы отладки (Настройки > Производительность > SQL Запросы) найти и убрать лишние запросы.
Лишний запрос – это:
- Запрос в цикле (вынести из цикла в переменную).
- Запросы, которые добирают данные в цикле. (Лучше собрать данные в фильтре, а потом одним запросом вывести данные, потом дополнительный цикл – разложить данные) в этом случае запросы не зависят линейно от количества элементов.
- Убрать из запросов неиспользуемые данные (
$arSelect
). Точно указывать поля, которые впоследствии будут использоваться. Это в разы повышает производительность, потому что такое четкое указание используемых данных означает для базы данных сокращение объемов сортировки. База данных производит такую сортировку не на жестком диске, а в оперативной памяти. - Оценить возможность использования
PROPERTY_*
в сочетании с инфоблоками 2.0. Инфоблоки 2.0 хранят свои свойства в отдельной таблице. Эта таблица при упоминанииPROPERTY_*
присоединяется на этапе выборки. И до выборки значения свойств присоединение этих свойств не происходит.Когда это не применимо? Например, при малой выборке из большого числа элементов (10 новостей из нескольких тысяч записей). Момент этот не очень однозначный, и малозависим от разработчика. Причина в том, что результат выборки из инфоблоков и инфоблоков 2.0 – разный. В простом инфоблоке при выборке записи начинают размножаться. А инфоблоки 2.0 возвращают массив значения свойства. Если код в шаблоне не предусматривает эту ситуацию, то смена обычных инфоблоков на инфоблоки 2.0 приведет только к тому, что шаблон «развалится».
- Посмотреть план исполнения самых тяжелых запросов и добавить/удалить индексы.
Назад в раздел
Подписаться на новые материалы раздела: