我需要存储大量小的小数字(小数点前3位,小数点后6位)。
根据我对规范的理解,这将需要8个字节。我可以将数字存储为int,只需要4个字节,并在使用固定比例因子检索后进行转换。
有没有更好的选择而不是使用int,我不能轻易对数字做任何算术?
感谢。
答案 0 :(得分:2)
我不认为这是正确的。
DECIMAL(9,6)
应该做的工作。
根据mysql 5.1手册,它将需要3个字节的2个字节和6个数字的3个字节。恕我直言,这5个字节总共不是8个字节。
因此,与您提出的整数“黑客”相比,您不需要更多的内存。在你的情况下,我肯定会使用小数。
答案 1 :(得分:-1)
不,如果您使用MySQL的“int
”数据类型,它将无效。这是因为整数不能处理小数精度。
根据您的问题,您应该使用“固定点数据类型”,这将使您在大型计算中受益匪浅。货币数据。在MySQL中,所需的数据类型为“DECIMAL
”,您可以在其上阅读更多内容here。
在你的情况下,正确的语法将是“DECIMAL (9, 6)
”,其中9表示值最多可存储9位数,其中6位数位于小数点后面,3位数位于小数点。
希望它有所帮助。