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