我检查过不同的面向列的数据库系统,如InfiniDB、InfobrightDB和MonetDB。它们都不支持无符号整数作为数据存储类型。为什么?一种解决方案是将所有4字节无符号整数存储为8字节有符号整数(Link),但我认为这会浪费太多空间。有没有支持无符号整数的面向列的开源数据库系统?我已经检查了这个(Link),但没有运气。非常感谢您的宝贵时间。
埃默尔
发布于 2010-07-27 19:09:56
我在Infobright.org的“如何从SQL Server迁移”(page4)上找到了一个答案:
无符号整数-DBA和数据库设计人员历来选择无符号整数,以便为给定整数字段提供比有符号整数更大的最大值。在数据中不存在负值或不允许负值的情况下,选择无符号整数的方法允许容纳较大的值,同时在传统的面向行的技术中选择较小的数据类型。在Infobright的情况下,当特定整数值存在不需要的字节时,它们会被固有的压缩算法“挤出”。因此,Infobright建议选择下一个更大的integer数据类型-例如,BIGINT优先于INTEGER,或MEDIUMINT优先于SMALLINT -这样最大列值仍可容纳在所选数据类型中。Infobright不会因为“过度键入”自己的列而造成浪费空间的后果。
发布于 2011-11-17 23:24:50
MySQL支持将无符号整数作为列类型
https://stackoverflow.com/questions/3339935
复制相似问题