Teradata Database uses hashing to distribute data for tables with a PI to disk storage and uses indexes to access the data.
Because the architecture of Teradata Database is massively parallel, it requires an efficient means of distributing and retrieving its data. That efficient method is hashing. Virtually all Teradata Database indexes are based on (or partially based on) row hash values rather than table column values.
For PIs, Teradata Database obtains a row hash by hashing the values of the PI columns. The row hash and a sequence number, which is assigned to distinguish between rows with the same row hash within a table, are collectively called a row identifier and uniquely identify each row in a table. A partition identifier is also part of the row identifier in the case of partitioned tables. For more information on partitioned tables, see “Partitioned Tables” on page 115.
For SIs, Teradata Database computes a hash value using the hash of the values of the SI columns. This value is used for access when an SI value is specified in the SQL. The SI subtable records the hash value for the SI, the actual value of the index columns (for synonym resolution), and a list of primary index row identifiers for the table being indexed.