表格的磁盘空间使用情况
最佳做法是,设计表格时只使用所需的磁盘空间。 例如,在数值中使用精度最低的位数以节省空间,当较小的尺寸就足够时,不要将用户可控尺寸设置为最大值。
下表描述了以下数据类型使用的磁盘空间大小。
| 数据类型 | 用途 |
|---|---|
| 大整数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 Appliance 和 IBM Netezza Appliance 表格的以下特点:
- 在所有表中,每条记录还包括三个 8 字节的特殊字段,分别代表 rowid、创建该行的事务 ID 和删除该行的事务 ID(如果未删除该行,则为 0)。 这些栏被称为特殊栏或特殊栏。
- 每个声明大小大于 16 且实际内容为奇数字节的 varchar 数据类型都会得到一个填充字节。
- 大多数记录还包括一个标头,标头由长度(2 字节)和空向量N/8字节,其中 N 是记录中的列数)组成。 系统会将该标头的大小四舍五入为 4 字节的倍数。 只有在没有可空列和可变大小列(超过 16 字节的 varchar 和 char 数据类型)的情况下,记录才不包含标头。
- 由于每条记录都以 4 字节为界,因此记录的总大小也要相应四舍五入。
- 数据片上最小的分配单位是 extent,目前为 3 MB 磁盘空间。 这个数字可能会在未来的软件版本中发生变化。