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