表只能包含一個(gè)主索引。更多情況下,您會(huì)遇到表包含其他列的情況,使用這些列來頻繁訪問數(shù)據(jù)。 Teradata將對這些查詢執(zhí)行全表掃描。輔助索引解決此問題。
輔助索引是用于訪問數(shù)據(jù)的備用路徑。主索引和輔助索引之間存在一些差異。
- 次級(jí)索引不涉及數(shù)據(jù)分發(fā)。
- 輔助索引值存儲(chǔ)在子表中。這些表是在所有AMP中內(nèi)置的。
- 輔助索引是可選的。
- 它們可以在創(chuàng)建表期間或在創(chuàng)建表之后創(chuàng)建。
- 它們占用額外的空間,因?yàn)樗鼈儤?gòu)建子表,并且它們還需要維護(hù),因?yàn)樾枰獮槊總€(gè)新行更新子表。
有兩種類型的輔助索引:
唯一二級(jí)指數(shù)(USI)
非唯一二級(jí)指數(shù)(NUSI)
唯一二級(jí)指數(shù)(USI)
唯一輔助索引只允許定義為USI的列的唯一值。通過USI訪問該行是一個(gè)雙放大操作。
創(chuàng)建唯一二級(jí)索引
以下示例在Employee表的EmployeeNo列上創(chuàng)建USI。
CREATE UNIQUE INDEX(EmployeeNo) on employee;
非唯一二級(jí)指數(shù)(NUSI)
非唯一二級(jí)索引允許定義為NUSI的列的重復(fù)值。 通過NUSI訪問該行是全放大器操作。
創(chuàng)建非唯一二級(jí)索引
以下示例在employee表的FirstName列上創(chuàng)建NUSI。
CREATE INDEX(FirstName) on Employee;
更多建議: