我应该使用DECIMAL还是VARCHAR

时间:2013-07-25 19:09:24

标签: php mysql decimal

我创建了一个包含大量十进制值的数据库,并将它们全部存储为varchar(11) 所以我有“order-by”问题并暂时用“cast as”修复了问题。 我应该使用decimal(3,8)而不是varchar(11)=>我的意思是,如果我做出改变,我的服务器会更快,还是没有区别?

另外 - 在php方面,我的varchar值正在进行大量的计算。

5 个答案:

答案 0 :(得分:1)

我更喜欢使用decimal代替varchar。它会更快!

答案 1 :(得分:1)

MySQL希望数值采用INTDECIMAL等格式,以便于数学函数和排序,而无需重复投射。

切换列类型并让MySQL为您重新构建所有值可能是个好主意。在将其应用到生产数据之前,请务必先测试一下。

PHP并不真正关心字符串和数字之间的区别,它会根据需要为您投射。

答案 2 :(得分:1)

我会使用小数....总是。除非您有字母和数字值,否则请使用小数。这不仅更快,而且在完整性方面被认为更好。

快乐编码

答案 3 :(得分:0)

如果您使用值进行计算,我建议您使用小数,因为当使用'+'叹息添加字符串时,它与添加小数时的效果不同。所以我建议你最好使用小数

答案 4 :(得分:0)

是的,使用decimal可以加快速度(it takes less space),并且您可以轻松地操作十进制格式的数据。