Teradata - 压缩



压缩用于减少表使用的存储空间。在 Teradata 中,压缩最多可以压缩 255 个不同的值,包括 NULL 值。由于存储空间减少了,Teradata 可以在一个数据块中存储更多记录。这导致查询响应时间改进,因为任何 I/O 操作都可以在每个数据块中处理更多行。可以使用 CREATE TABLE 命令在创建表时添加压缩,也可以使用 ALTER TABLE 命令在创建表之后添加压缩。

限制

  • 每列只能压缩 255 个值。
  • 无法压缩主键列。
  • 无法压缩易失表。

多值压缩 (MVC)

下表压缩了值为 1、2 和 3 的字段 DepatmentNo。当对列应用压缩时,此列的值不会与行一起存储。而是将这些值存储在每个 AMP 的表头中,并且仅将存在位添加到行中以指示该值。

CREATE SET TABLE employee ( 
   EmployeeNo integer, 
   FirstName CHAR(30), 
   LastName CHAR(30), 
   BirthDate DATE FORMAT 'YYYY-MM-DD-', 
   JoinedDate DATE FORMAT 'YYYY-MM-DD-', 
   employee_gender CHAR(1), 
   DepartmentNo CHAR(02) COMPRESS(1,2,3) 
) 
UNIQUE PRIMARY INDEX(EmployeeNo);

当大型表中有一列具有有限值时,可以使用多值压缩。

广告