Создание сайта на Битрикс: зачем нужны Highload-блоки?
Ответим на такой простой и в то же время нетривиальный вопрос. До сих пор большинство разработчиков не осознают, что это такое и как с ними работать. Те, кто работают с крупными проектами как правило понимают их значение, однако, подавляющее большинство агентств и команд, работающих на готовых решениях, совершенно не умеют работать с большими данными.
Что же такое Highload-блоки Битрикс?
Highload-блоки (HL-блоки) — это отдельная сущность в 1С-Битрикс, предназначенная для работы с большими объемами данных. До сих пор большинство команд разработки слабо понимают возможности этого прекрасного инструмента. Далее будем называть для простоты такие сущности как Справочник.
Справочники представляют собой высокопроизводительные таблицы в базе данных, которые оптимизированы для быстрого чтения и записи информации. По сути это чуть более продвинутый способ хранения данных, чем хранение в обычных таблицах базы данных за счет реализованной модели чтения, записи и управления правами доступа.
В отличие от стандартных инфоблоков, HL-блоки имеют более гибкую и эффективную структуру хранения данных, что позволяет работать с сотнями тысяч и даже миллионами записей без значительного снижения производительности.
Как правильно использовать Highload-блоки для разработки сайта на Битрикс?
HL-блоки мы рекомендуем использовать почти всегда как дополнительный источник данных для простых сущностей в следующих случаях, например:
- Хранение и обработка большого количества однотипных данных, например, свойств и характеристик каталогов товаров, справочников, списков пользователей и транзакций.
- Оптимизация запросов и повышение производительности, когда стандартные инфоблоки начинают замедлять работу сайта. Как правило - этим грешат все сайты на готовых решениях приобретенных через маркетплейсы. Как только количество товаров переходит некую границу - все, почти любые оптимизации за разумные сроки и деньги не помогут.
- Работа с часто изменяемыми данными, такими как история заказов, отзывы, акции и скидки. В своей работе мы неоднократно реализовывали хранение такой простой информации как токен авторизации приложения или попытки авторизации пользователей через определенные инструменты авторизации, а также очереди обмена данными между системами.
- Разделение нагрузки, когда одни данные требуют высокой скорости обработки, а другие могут находиться в стандартных инфоблоках. Особенно важно для систем с посещаемостью от 5-10 тысяч пользователей в моменте.
Какую задачу Highload-блоки не решают?
Несмотря на свою эффективность, HL-блоки не являются универсальным инструментом. Они не заменяют стандартные инфоблоки и не предназначены для:
- Хранения сложных связанных данных, таких как многосоставные каталоги с детальной структурой.
- Работы с мультиязычным контентом, если требуется сложное управление переводами.
- Полнотекстового поиска, поскольку HL-блоки не поддерживают стандартные механизмы поиска, такие как поиск по инфоблокам.
- Гибкого управления правами доступа, так как стандартные возможности HL-блоков ограничены в этом плане.
Для каких сайтов крайне рекомендуется использовать Highload-блоки?
- Если сайт только проектируется и еще не создана архитектура приложения. В этот момент еще не поздно заложить основу будущего крайне производительного и недорого в сопровождении сайта.
- Интернет-магазины или каталоги с большим количеством товаров (от 5 000 позиций и выше).
- Крупные корпоративные порталы с большими объемами структурированной информации.
- Онлайн-сервисы с постоянными изменениями данных (например, CRM-системы, агрегаторы, базы пользователей).
- Платформы с высокой посещаемостью, где важна скорость обработки запросов.
В каком случае использование не принесет пользы?
- Если у вас есть сайт на шаблоне и вам его требуется ускорить за скромный бюджет. Перенос часть данных в справочники станет недешевым решением, поскольку требует настоящей разработки без шаблонных решений с глубоким пониманием архитектуры Битрикс.
- Если у вас небольшой сайт с малым количеством записей (до нескольких тысяч) — стандартные инфоблоки будут проще в управлении и в стоимости владения.
- Если данные требуют сложной структуры и взаимодействия с другими сущностями — в таких случаях лучше использовать стандартные базы данных с ORM или кастомные таблицы.
- Если требуется сложное разграничение прав доступа на уровне записей — стандартные возможности HL-блоков в этом плане ограничены.
Где еще могут быть полезны Справочники?
Вот лишь небольшой список примеров использования- Хранение контента, который несет в себе функцию настроек. Например, модификаторы и коффициенты наценок для разных групп покупателей.
- Модификаторы для промокодов, связанных с основными промокодами Битрикс но действующими на разные категории покупателей по своему.
- Справочники электронных почт для сквозной аналитики, выводимые в зависимости от источника посетителя.
- Подсказки к свойствам умного фильтра с расшифровкой значений.
- Сортировки и приоритеты внутри значений характеристик умной фильтрации.
- Хранение словарей синонимов и топонимов для поиска или поисковой оптимизации.
- Стандартизированное хранение адресов покупателей, полученных из систем геокодирования, включая данные, системы КЛАДР или ФИАС.
Вывод
Highload-блоки — мощный инструмент в 1С-Битрикс, но их использование оправдано только в проектах с требованиями к высокой скорости работы сайта. Они позволяют хранить и обрабатывать большие массивы данных быстрее, чем стандартные инфоблоки, но не заменяют их полностью. Перед внедрением HL-блоков важно оценить структуру данных и нагрузки на сайт, чтобы избежать ненужных сложностей в разработке.