1

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

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

4

5 回答 5

1

MySQL 更喜欢数值的格式类似于INTDECIMAL便于数学函数和排序,而不必重复转换。

切换列类型并让 MySQL 为您重新转换所有值可能是个好主意。请务必在将其应用于生产数据之前对其进行测试。

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

于 2013-07-25T19:28:42.703 回答
1

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

快乐编码

于 2013-07-25T19:39:33.247 回答
1

我更喜欢使用decimal而不是varchar. 它会更快!

于 2013-07-25T19:11:21.887 回答
0

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

于 2013-07-25T19:12:12.153 回答
0

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

于 2013-07-25T19:18:11.590 回答