Highload-блоки Битрикс - это хранилище для больших объёмов однотипных данных: каждая сущность живёт в отдельной таблице базы, без служебных полей, событий и проверки прав, которые тянут за собой инфоблоки. За счёт этого выборки работают в разы быстрее. Переходить на highload-блоки стоит, когда справочники, логи или значения свойств разрослись до сотен тысяч записей и обычные инфоблоки стали узким местом. А вот карточкам товаров и разделам каталога лучше оставаться в инфоблоках: у highload-блоков нет готовых детальных страниц, SEO-настроек и привычной редакторам админки.

Под капотом. Highload-блок - это таблица в базе плюс ORM-обёртка ядра D7. Поля начинаются с UF_, работа идёт через программный интерфейс. Инфоблоки же хранят данные всех проектов в общих таблицах с десятками служебных колонок - отсюда и разница в скорости.

Чем highload-блоки отличаются от инфоблоков Битрикс

КритерийИнфоблокиHighload-блоки
ХранениеОбщие таблицы для всех данныхОтдельная таблица на сущность
Скорость выборокСредняя, падает с ростом данныхВысокая даже на миллионах записей
Детальные страницы и SEOИз коробки: URL, метатеги, компонентыНет, только своими руками
События и праваПолный наборМинимум: базовые события ORM
Интерфейс редактированияПривычный, богатыйПростой список полей
Типовое применениеТовары, новости, страницыСправочники, логи, значения фильтров

Когда обычных инфоблоков уже мало: типовые сценарии

  • Справочники для фильтра каталога - бренды, цвета, размеры, города: умный фильтр Битрикс штатно работает со справочными свойствами в highload-блоках
  • Логи и история - просмотры товаров, поисковые запросы, действия пользователей: миллионы строк, которым нечего делать в инфоблоках
  • Избранное, сравнения, подписки на цену - быстрые связки «пользователь - товар»
  • Отзывы и рейтинги - когда их тысячи и важна скорость агрегации
  • Технические данные из 1С - остатки по складам, штрихкоды, служебные коды, которые не должны раздувать карточку товара
Не переносите в highload-блоки сам каталог. Товары, торговые предложения, цены и скидки плотно завязаны на модуль каталога и инфоблоки. Попытка «ускорить магазин», переселив товары в highload, оборачивается переписыванием половины сайта и потерей штатного функционала.

Как внедряют highload-блоки без переписывания сайта

  1. Аудит: что реально тормозитСначала журнал медленных запросов и монитор производительности - методику мы разобрали в статье про медленные запросы MySQL. Highload-блоки лечат конкретную болезнь, а не всё подряд.
  2. Проектирование сущностейКакие поля нужны, какие индексы, как данные связаны с товарами и пользователями. Ошибка на этом шаге - самая дорогая.
  3. Миграция данныхСкрипт переносит записи из инфоблока или сторонних таблиц, сверяет количество и контрольные выборки.
  4. Точечная замена выборок в кодеКомпоненты переключаются на ORM-запросы к новой таблице. Шаблоны и вёрстка не меняются - посетитель разницы не видит.
  5. Замер до и послеВремя генерации страниц и нагрузка на MySQL до миграции и после - отчёт, который показывает эффект в цифрах.

Каталог и фильтр тормозят на больших данных?

Перенесём справочники, логи и значения фильтров в highload-блоки: спроектируем структуру, мигрируем данные без простоя и покажем замеры до и после.

Ускорить проект
Совет. Планируете новый магазин с каталогом от 20-30 тысяч позиций - закладывайте highload-блоки в архитектуру сразу: перенос «потом» стоит дороже, чем правильная структура на старте. Мы учитываем это в проектах разработки интернет-магазинов.

Сколько стоит внедрение highload-блоков

Перенос одного-двух справочников с заменой выборок - от 300 BYN. Комплексная работа с крупным каталогом: аудит, миграция логов и свойств, оптимизация фильтра - ориентир 300-800 BYN и 3-7 дней, точная смета после аудита. Если тормозит не структура данных, а код или сервер, скажем честно и предложим более дешёвое решение - начните с общего разбора в статье как ускорить сайт.

Частые вопросы о highload-блоках

Highload-блоки входят во все редакции 1С-Битрикс?
Модуль highloadblock доступен начиная с редакции «Стандарт». В «Старте» его нет - учитывайте это при выборе лицензии, если проекту предстоит работать с большими справочниками.
Сколько записей выдерживает highload-блок?
Практически столько, сколько выдерживает MySQL: миллионы строк при правильных индексах. Пределы обычно упираются в диск и настройки сервера, а не в саму технологию.
Пострадает ли SEO при переносе данных в highload-блоки?
Нет: справочники и логи поисковикам не нужны, а карточки товаров остаются в инфоблоках со своими URL. Перенос происходит внутри базы и на адреса страниц не влияет.
Можно ли редактировать данные highload-блока руками?
Да, в админке есть стандартный интерфейс списков: добавление, фильтрация, экспорт. Он проще инфоблочного, но для справочников и служебных данных его достаточно.

Highload-блоки - инструмент точечный: в правильном месте они снимают нагрузку в разы, в неправильном - добавляют работы без эффекта. Сомневаетесь, куда переносить данные и надо ли вообще - покажите проект нам: в рамках доработки сайтов на Битрикс сделаем аудит структуры, дадим план и смету за 1 день. С 2013 года и 450+ проектов - насмотренность позволяет не советовать лишнего.