Терадата - вторичный индекс
Таблица может содержать только один первичный индекс. Чаще вы встретите сценарии, в которых таблица содержит другие столбцы, с помощью которых часто осуществляется доступ к данным. Teradata выполнит полное сканирование таблицы для этих запросов. Вторичные индексы решают эту проблему.
Вторичные индексы - это альтернативный путь для доступа к данным. Есть некоторые различия между первичным индексом и вторичным индексом.
Вторичный индекс не участвует в распределении данных.
Значения вторичных индексов хранятся в подтаблицах. Эти таблицы встроены во все AMP.
Вторичные индексы необязательны.
Они могут быть созданы во время создания таблицы или после создания таблицы.
Они занимают дополнительное место, так как создают подтаблицы, и они также требуют обслуживания, так как подтаблицы необходимо обновлять для каждой новой строки.
Есть два типа вторичных индексов -
- Уникальный вторичный индекс (USI)
- Неуникальный вторичный индекс (NUSI)
Уникальный вторичный индекс (USI)
Уникальный вторичный индекс допускает только уникальные значения для столбцов, определенных как USI. Доступ к строке с помощью USI - это операция с двумя усилителями.
Создать уникальный вторичный индекс
В следующем примере USI создается в столбце EmployeeNo таблицы сотрудников.
CREATE UNIQUE INDEX(EmployeeNo) on employee;
Неуникальный вторичный индекс (NUSI)
Неуникальный вторичный индекс допускает повторяющиеся значения для столбцов, определенных как NUSI. Доступ к строке с помощью NUSI - это операция на всех усилителях.
Создать неуникальный вторичный индекс
В следующем примере создается NUSI в столбце FirstName таблицы сотрудников.
CREATE INDEX(FirstName) on Employee;