Почему индексы в Greenplum не эффективны?

С недавних пор работаю с Гринпламом (его отечественная версия Arenadata DB, если точнее). Во всех статьях, посвящённых ГП вижу, что использование индексов крайне нежелательно, но нигде не описано - почему?

Я понимаю, что ключ к производительности запроса в ГП - это удачная (с точки зрения конкретного джоина) дистрибуция таблиц, чтобы данные джоинились локально на своих сегментах, но почему индекс не может ускорить/может замедлить исполнение запроса - мне не ясно.

Несколько более конкретных вопросов:

  1. Индекс в кластере Гринплама - это какая-то монолитная штука, лежащая на мастер-хосте, содержащая на листьях не только значение индексируемого поля, но и номер сегмента (предположение хоть как-то адекватно для некластерного индекса)? или это, фактически, свой индекс на каждом сегменте? или как это работает вообще?
  2. В чём, собственно, проблема в использовании индексов в ГП? Единственное моё предположение заключается в том, что это должно создавать ооочень существенные доп расходы при Broadcast/Redistribution Motion. Так ли это? и есть ли другие причины?

Ответы (0 шт):