表格的磁盘空间使用情况

最佳做法是,设计表格时只使用所需的磁盘空间。 例如,在数值中使用精度最低的位数以节省空间,当较小的尺寸就足够时,不要将用户可控尺寸设置为最大值。

下表描述了以下数据类型使用的磁盘空间大小。
表 1. 数据类型 磁盘使用量
数据类型 用途
大整数INT8 8 个字节
整数INT4 4 个字节
小整数INT2) 2 字节
微小整数INT1) 和布尔值 1 个字节
精度超过 18 位的数值 16 个字节
10 - 18 位数字 8 个字节
9 位或少于 9 位的数字 4 个字节
float8s 8 个字节
float4s 4 个字节
带有时区和间隔的时间 12 个字节
时间和时间戳 8 个字节
日期 4 个字节
CHAR(16) 16 个字节
char(n*) 和 varchar(n)

超过 16 字节的 char 数据类型在磁盘上的表示方法与标称大小相同的 varchar 数据类型相同。

N+2 或更少的字节,取决于实际内容
char(1) 1 个字节
nchar(n*) 和 nvarchar(n)

nchar 和 nvarchar 字符总是作为 nvarchar 字符存储。

N+2到 (4 * N) + 2
请牢记 IBM Netezza ApplianceIBM Netezza Appliance 表格的以下特点:
  • 在所有表中,每条记录还包括三个 8 字节的特殊字段,分别代表 rowid、创建该行的事务 ID 和删除该行的事务 ID(如果未删除该行,则为 0)。 这些栏被称为特殊栏或特殊栏。
  • 每个声明大小大于 16 且实际内容为奇数字节的 varchar 数据类型都会得到一个填充字节。
  • 大多数记录还包括一个标头,标头由长度(2 字节)和空向量N/8字节,其中 N 是记录中的列数)组成。 系统会将该标头的大小四舍五入为 4 字节的倍数。 只有在没有可空列和可变大小列(超过 16 字节的 varchar 和 char 数据类型)的情况下,记录才不包含标头。
  • 由于每条记录都以 4 字节为界,因此记录的总大小也要相应四舍五入。
  • 数据片上最小的分配单位是 extent,目前为 3 MB 磁盘空间。 这个数字可能会在未来的软件版本中发生变化。