我需要一个数据类型来存储这个范围:[0 - 9]
.像这样的东西:
+-----+ | col | +-----+ | 3 | | 2 | | 8 | | 0 | | 2 | | 1 | +-----+
在这种情况下,哪种数据类型最好?
尽管有文档,但我不清楚a的大小是否DECIMAL(1,0)
"向上舍入"到4个字节或者单个数字是否算作"剩余数字",从而导致整个数据的单个字节宽度类型.
无论如何,你不能使用比a更少的空间TINYINT
,因为a TINYINT
是一个字节宽,而一个字节是计算机上最小的数据单元(没有进入bitpacking,这在表格数据上似乎不合理!).
因此,在数字类型中,使用a TINYINT
.其他任何东西都是不必要的混淆.
话虽这么说,我是ENUM
s的忠实粉丝,这似乎是他们的完美案例.由于您的枚举将少于255个可能的值,TINYINT
因为它只需要一个字节.
ENUM('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
可悲的是,写出来有点冗长.但至少现在你的价值观具有固有的范围限制.