Документация Accelera

Индексы в сегментации

Начиная с версии 3.3.38 в сегментах появился функционал Index для блоков Select.

Что это такое

Индекс — это способ ускорить поиск данных в таблице. Представьте оглавление в книге: вместо того чтобы листать все страницы в поисках нужной главы, вы смотрите в оглавление и сразу переходите на нужную страницу. Индекс работает так же — помогает системе быстрее находить нужные строки.

Как это работает

Когда вы указываете индекс на колонку в блоке Dataset, система создаёт специальную структуру для быстрого поиска по этой колонке. Это ускоряет последующие операции в других блоках сегмента:

  • JOIN — если вы соединяете этот датасет с другим по индексированной колонке
  • Фильтрация — если в следующих блоках данные фильтруются по этой колонке
  • Исключение (Exclude) — если колонка используется для сравнения датасетов

Важно: Индекс ускоряет работу только тех блоков, которые идут после текущего датасета и используют индексированную колонку.

Когда использовать индексы

Индексы полезны, когда:

  • Большой объём данных — датасет содержит более 100 000 записей
  • Колонка используется в JOIN — вы соединяете этот датасет с другим по определённой колонке (например, user_id)
  • Колонка используется в фильтрах — последующие блоки фильтруют данные по этой колонке (например, region = 'Москва')

Когда НЕ использовать индексы

Индексы замедляют работу, если:

  • Мало данных — для датасетов менее 10 000 записей индекс не даёт выигрыша, а только добавляет время на его создание
  • Колонка не используется дальше — если колонка не участвует в JOIN или фильтрах последующих блоков, индекс на неё бесполезен
  • Слишком много индексов — каждый индекс требует времени на создание. Не индексируйте все колонки — выберите 1-3 самые важные для дальнейшей обработки

Рекомендации

Размер датасетаРекомендация
Менее 10 000 строкИндексы не нужны
10 000 – 100 000 строкИндекс на колонку, по которой делаете JOIN
Более 100 000 строкИндексы на колонки JOIN и основных фильтров

Совет: Начните без индексов. Если сегмент выполняется медленно — добавьте индекс на колонку, которая используется в соединениях или фильтрации в последующих блоках.

На этой странице