decimal 将整数和小数部分分开存储,每9位数字包装成4个字节

对于每个部分,需要4个字节来存储9位数的每个倍数。剩余数字所需的存储如下表所示:

剩余数字
00
1–21
3–42
5–63
7-94

例如,DECIMAL(19,9)对于小数部分具有9位数字,对于整数部分具有19位= 10位数字,小数部分需要4个字节。 整数部分对于前9位数字需要4个字节,1个剩余字节需要1个字节。DECIMAL(19,9)列总共需要9个字节。


为什么是9位数字?

因为4个字节,也就是32位最多可以存储10位数字,2147483647,第10位只能到2,所以最大存储到9位才可满足


一篇可参考的文章:

https://www.cnblogs.com/owenma/p/7097602.html