Highload блоки
Модуль Highload-блоки работает с произвольными наборами данных в условиях высоких нагрузок. Создан на основе ORM с поддержкой NoSQL.
Модель NoSQL появилась в ответ на необходимость оперативно обрабатывать действительно огромные объёмы данных. Поэтому NoSQL по большей части заточена под масштабирование по горизонтали и работу с недостаточно структурированными или постоянно меняющимися данными.
Рассмотрим пример моделирования схемы для простой базы данных книг:
- В реляционной базе данных запись о книге часто разделяется на несколько частей, или нормализуется и хранится в отдельных таблицах, отношения между которыми определяются ограничениями первичных и внешних ключей. В этом примере в таблице
Книгиимеются столбцыISBN,Название книгииНомер издания, в таблицеАвторыстолбцыИД автораиИмя автора, а в таблицеАвтор–ISBNстолбцыАвториISBN. Реляционная модель создана таким образом, чтобы обеспечить целостность ссылочных данных между таблицами в базе данных. Данные нормализованы для снижения избыточности и в целом оптимизированы для хранения - В базе данных
NoSQLзапись о книге обычно хранится как документ JSON. Для каждой книги, или элемента, значенияISBN,Название книги,Номер издания,Имя автораиИД авторахранятся в качестве атрибутов в едином документе. Втакой модели данные оптимизированы для интуитивно понятной разработки и горизонтальной масштабируемости
Модуль позволяет создавать списки для хранения произвольных данных, новости, вакансии, каждый хранится в своих таблицах БД и использует собственные индексы. Производительность увеличивается за счет разделения данных по таблицам, в Битриксе существует унифицированное и производительное API по работе с данными за счет использования ORM.
Это быстрые справочники, без поддержки иерархии, с ограниченной поддержкой свойств. Они могут обращаться к БД и работать с большими объёмами данных. В поставку модуля включено два компонента, отображающих информацию из Highload-блоков:
Запись детальноСписок записей
C появлением модуля Highload-блоки для элементов модуля Информационные блоки доступен новый тип свойства Справочник, где в качестве справочника используется Highload-блок.
В каких случаях использовать Highload блоки
В каких случаях удобно использовать Highload-блоки:
- Очень большой объем данных и нагрузки, с которым не могут справиться инфоблоки
- Если нужна некая структура для хранения служебных данных, которая не будет редактироваться контент-менеджерами
В отличие от модуля Информационные блоки в модуле Highload-блоки предусматривается хранение каждой сущности в своей таблице, то есть формально не принадлежат какому-либо модулю. Поля сущностей — это пользовательские свойства ядра. Сущности конструируются в административном интерфейсе, то есть, без дополнительного программирования.
Highload-блоки появились в битрикс, начиная с версии 14.0. Они ориентированы на создание более быстрых справочников, по сравнению с традиционными инфоблоками, которые были известны ранее пользователям битрикс. Highload-блоки реализованы на новом ядре D7.
На самом деле между Инфоблоками и Highload-блоками нет ничего общего, средствами стандартного функционала администраторской части нет возможности перенести данные из инфоблоков в новую структуру. Однако при необходимости можно реализовать это, используя API битрикса предварительно создав необходимую структуру для данных в highload.