我检查了不同的面向列的数据库系统,如InfiniDB,InfobrightDB和MonetDB。它们都不支持无符号整数作为数据存储类型。为什么?一种解决方案是将所有4字节无符号整数存储到8字节有符号整数(Link)中,但我认为这会浪费太多空间。是否有任何支持无符号整数的面向开源列的数据库系统?我已经检查了这个(Link)没有运气。 非常感谢你的时间。
伊玛
答案 0 :(得分:2)
我在Infobright.org的“如何从SQL Server迁移”(page4)找到了一个答案:
UNSIGNED INTEGERS - 无符号整数 历来被选中 DBA和数据库设计者提供 能够获得更大的最大值 给定的整数字段可能 带有符号整数。哪里消极 值不存在于数据中,或 是不允许的,接近的 选择允许的无符号整数 适应更大价值的同时 选择较小的数据类型 传统的行向技术。 在Infobright的案例中,当不需要时 字节存在于特定整数 价值,它们被“挤压”了 固有的压缩算法。对于 这个原因,Infobright建议 选择下一个更大的整数数据 type - 例如,BIGINT over SMALLINT上的INTEGER或MEDIUMINT - 这样最大列值就可以了 仍然被选中 数据类型。 Infobright不会受苦 浪费的空间后果 “过度打字”一栏。
答案 1 :(得分:0)
MySQL支持无符号整数作为列类型