对于db人员来说很简单的问题, 它不是非常重要,但我很好奇。
是否有更小的(数字)小于tinyint
。
我存储了120个不同的值,而且几乎所有的值都是(0-9)
。
tinyint
是我能找到的最小值,它的值最高为255
。 (3位数)
我正在使用MSSqlServer 2008版本10.00.1600
答案 0 :(得分:3)
数字tinyint
可能很小(它实际上取决于您使用的数据库引擎)。您可以使用char(1)
,然后依靠隐式转换来查询值,但这将是解决不需要解决的问题的不必要的开销。此外,char(1)
仍将消耗1个字节,8位,范围为0-255。我认为这是微观优化,不值得花时间/精力。
我知道您可能会要求学术目的,但就数据库存储而言,tinyint
对于几乎所有情况都足够小。如果您 关注空间消耗,我会说您需要查看除传统RDBMS之外的其他选项。
答案 1 :(得分:1)
您当然可以手动将多个元素打包到一个字段中;因为几乎每个计算系统都是面向字节(8位)的,所以通常最小的有用可用元素只是一个字节,8位,例如可以代表0-255(或-128到127)。