Индексы в сегментации
Начиная с версии 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 и основных фильтров |
Совет: Начните без индексов. Если сегмент выполняется медленно — добавьте индекс на колонку, которая используется в соединениях или фильтрации в последующих блоках.