SQl存储小数字

时间:2012-11-13 16:20:02

标签: sql sql-server database sql-server-2008

对于db人员来说很简单的问题, 它不是非常重要,但我很好奇。

是否有更小的(数字)小于tinyint

我存储了120个不同的值,而且几乎所有的值都是(0-9)

tinyint是我能找到的最小值,它的值最高为255。 (3位数)

DB:

我正在使用MSSqlServer 2008版本10.00.1600

2 个答案:

答案 0 :(得分:3)

数字tinyint可能很小(它实际上取决于您使用的数据库引擎)。您可以使用char(1),然后依靠隐式转换来查询值,但这将是解决不需要解决的问题的不必要的开销。此外,char(1)仍将消耗1个字节,8位,范围为0-255。我认为这是微观优化,不值得花时间/精力。

我知道您可能会要求学术目的,但就数据库存储而言,tinyint对于几乎所有情况都足够小。如果您 关注空间消耗,我会说您需要查看除传统RDBMS之外的其他选项。

答案 1 :(得分:1)

您当然可以手动将多个元素打包到一个字段中;因为几乎每个计算系统都是面向字节(8位)的,所以通常最小的有用可用元素只是一个字节,8位,例如可以代表0-255(或-128到127)。