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