根据我对 mysql 文档中手册的理解DECIMAL
,它指出每个九位数字的倍数需要 4 个字节,剩下的数字如下;
number of digits leftover | bytes
0 | 0
1 | 1
2 | 1
3 | 2
4 | 2
5 | 3
6 | 3
7 | 4
8 | 4
所以 adecimal(12,6)
等于 6 个字节的总存储空间?
我知道小数部分将始终等于 6 位,因为填充了零,但是对于DECIMAL(12,6)
列而言,整数部分不是这样,存储是按行还是在列定义时获得值?
例子
DECIMAL(12,6)
1: 178.999999 // 3 digits for integer part so total would be 5 bytes?
2: 0.880000 // 1 digits for integer part so total would be 4 bytes?
3 123456.123456 // 6 digits would equal 6 bytes?
或者如果声明它总是 6 个字节(12,6)
?
编辑
同样,声明为的小数(5,5)
需要 6 个字节来存储,而声明为的小数(12,6)
也需要 6 个字节来存储。看到存储大小不是问题,大小差异会影响 mysql 如何检索或索引列吗?