
Авторизация

Сброс пароля
Оптимизация каталога товаров «Сонотеки»
Заказчик: «Сонотека» — интернет-магзин товаров для сна
Страница кейса/результат: https://worksolutions.ru/portfolio/of-work/optimizatsiya-kataloga-tovarov-sonoteki/

Рассказываем как сделать так, чтобы каталог интернет-магазина на 1С-Битрикс грузился намного быстрее.
1. Вводная задача от заказчика, проблематика, цели
Оптимизировать работу каталога, ускорить время отображения товаров интернет-магазина.
2. Описание реализации кейса и творческого пути по поиску оптимального решения
Стандартные компоненты Битрикса не справляются с количеством торговых предложений. Некоторые позиции в каталоге содержат тысячу характеристик, из-за чего фильтрация по свойствам занимает больше восьми минут.
Даже при правильно настроенной работе кеширования:
— первая загрузка занимает много времени
— память сервера перегружается, когда пользователь заходит на «тяжелые» страницы — без сохраненного кэша
— сервис перестает работать из-за нехватки памяти
Требовалось оптимизировать выборку, заменив стандартные компоненты каталога и настроив кэширование.
ПОИСК УЗКИХ МЕСТ
Для каждого товара, который сайт показывает пользователю, Битрикс фильтрует информацию по тысячам торговых предложений. На одной только странице «Кроватей» выводится 24 тысячи торговых предложений. Выявили ряд неоправданно сложных запросов, увеличивающих нагрузку на сайт.
ОПТИМИЗАЦИЯ СПИСКА ТОВАРОВ
Сайт выполнял отдельный запрос на получение свойств каждого торгового предложения. Установили ограничение, чтобы пользователю первоначально отображалась минимальная стоимость товара. Количество запросов и время формирования страницы снизилось, в результате загрузка страницы стала в сотни раз быстрее.
ОПТИМИЗАЦИЯ ФИЛЬТРА
При установленных в фильтре параметрах, раздел «Кровати» загружался восемь минут. Оперативная память сервера постепенно переполнялась, и в момент появления очередного запроса к базе данных, сервис mysql завершал работу с ошибкой. Проблема осложнялась из-за невозможности создать swap-файл на хостинге для временной выгрузки из памяти. Причиной долговременного выполнения запроса оказался подзапрос на получение родительских товаров по заданной фильтрации. Анализ возможных вариантов работы подзапроса показал, что его фильтрация никак не зависит от родительского запроса, но выполняется для каждого родительского элемента. Сделали этот подзапрос самостоятельным, и результат выполнения передали основному запросу в фильтр. Скорость вывода товаров на экран снизилась с восьми минут до двух сотых секунды.
ПОЛУЧЕНИЕ СВОЙСТВ
На некоторых страницах сайта выводится список характеристик товаров. Использовали метод, который позволил получать данные напрямую из таблицы со значениями свойств. Функционал кэширования в mysql еще сильнее ускоряет работу. Таким образом, список характеристик товаров стал отображаться быстрее.
3. Результаты сотрудничества
Изменение нескольких строк кода снизило нагрузку на сервер и увеличило производительность в сотни раз. Логика осталась прежней, но сайт стал работать без сбоев, а оперативная память больше не перегружается.
4. Заключение
Наши специалисты имеют сертификаты академии 1С-Битрикс, а значит без проблем могут установить на ваш сайт самую востребованную в России коммерческую CMS и оптимизировать её компоненты под ваши нужды.
С нами развитие и поддержка вашего проекта будет происходить легче и эффективнее, а ваш сайт будет работать стабильно.