Teradata 二级索引
一个表只能包含一个主索引。更常见的是,你会遇到表包含其他列的情况,使用这些列经常访问数据。 Teradata 将对这些查询执行全表扫描。二级索引解决了这个问题。
二级索引是访问数据的备用路径。主索引和二级索引之间存在一些差异。
-
二级索引不参与数据分发。
-
二级索引值存储在子表中。这些表内置在所有 AMP 中。
-
二级索引是可选的。
-
它们可以在创建表期间或创建表之后创建。
-
它们占用了额外的空间,因为它们构建了子表,并且它们还需要维护,因为需要为每个新行更新子表。
二级索引有两种:
- 唯一二级索引 (USI)
- 非唯一二级索引 (NUSI)
唯一二级索引 (USI)
唯一二级索引仅允许定义为 USI 的列的唯一值。通过 USI 访问该行是一个两安培的操作。
创建唯一二级索引
以下示例在员工表的 EmployeeNo 列上创建 USI。
CREATE UNIQUE INDEX(EmployeeNo) on employee;
非唯一二级索引 (NUSI)
非唯一二级索引允许定义为 NUSI 的列的重复值。通过 NUSI 访问该行是全放大器操作。
创建非唯一二级索引
以下示例在员工表的 FirstName 列上创建 NUSI。
CREATE INDEX(FirstName) on Employee;