我需要向表中添加新字段。该字段将仅存储 0 到 30 之间的数字,因此(理论上)单个字节字段应该没问题。
文档中列出的最小整数数据类型是 SMALLINT,它需要 2 个字节。
我要向其添加字段的表已分区,目前包含大约 30 亿行。因此,向每一行添加一个 2 字节的字段应该需要 60 亿字节,或 6 GB。
由于我仍然没有弄清楚的原因,(请参阅这个问题)我在向大表添加 SMALLINT 字段时空间不足。
问题 - 是否有一种单字节数据类型可以用来存储只有很小范围值的数字?
我需要向表中添加新字段。该字段将仅存储 0 到 30 之间的数字,因此(理论上)单个字节字段应该没问题。
文档中列出的最小整数数据类型是 SMALLINT,它需要 2 个字节。
我要向其添加字段的表已分区,目前包含大约 30 亿行。因此,向每一行添加一个 2 字节的字段应该需要 60 亿字节,或 6 GB。
由于我仍然没有弄清楚的原因,(请参阅这个问题)我在向大表添加 SMALLINT 字段时空间不足。
问题 - 是否有一种单字节数据类型可以用来存储只有很小范围值的数字?
那么,您可以使用特殊的“char”类型(注意双引号且没有长度),然后将您的值转换为输入和输出。
不过请告诉我们,您希望节省的 3 GB 占表总大小的百分比是多少,为什么它重要到足以保证付出额外的努力?