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
.