我创建了一个包含大量十进制值的数据库,并将它们全部存储为varchar(11) 所以我有“order-by”问题并暂时用“cast as”修复了问题。 我应该使用decimal(3,8)而不是varchar(11)=>我的意思是,如果我做出改变,我的服务器会更快,还是没有区别?
另外 - 在php方面,我的varchar值正在进行大量的计算。
答案 0 :(得分:1)
我更喜欢使用decimal
代替varchar
。它会更快!
答案 1 :(得分:1)
MySQL希望数值采用INT
或DECIMAL
等格式,以便于数学函数和排序,而无需重复投射。
切换列类型并让MySQL为您重新构建所有值可能是个好主意。在将其应用到生产数据之前,请务必先测试一下。
PHP并不真正关心字符串和数字之间的区别,它会根据需要为您投射。
答案 2 :(得分:1)
我会使用小数....总是。除非您有字母和数字值,否则请使用小数。这不仅更快,而且在完整性方面被认为更好。
快乐编码
答案 3 :(得分:0)
如果您使用值进行计算,我建议您使用小数,因为当使用'+'叹息添加字符串时,它与添加小数时的效果不同。所以我建议你最好使用小数
答案 4 :(得分:0)
是的,使用decimal
可以加快速度(it takes less space
),并且您可以轻松地操作十进制格式的数据。