我正在执行一些查询,需要大量连接行,并将其中的一些字段添加并相乘。
我知道这有点模糊,但我的问题是哪种数字数据类型对于这些类型的操作最快?
既然 DOUBLE 是 8 个字节,而 FLOAT 是 4 个字节,那么 FLOAT 会比 DOUBLE 更快吗?
INT 会比 FLOAT 更快吗(即使它们都是 4 字节)?
DECIMAL 会比 FLOAT 更快吗?
这里有更多信息:我正在解决的问题允许我选择将“浮点”数字存储为 BIGINTEGER 的...我可以在插入数字之前将其乘以 100000。如果 BIGINT 的数学运算比 FLOAT 更快,我愿意这样做。
谢谢。
最佳答案
字节大小影响数据检索,而不是基于它的计算。如有必要,索引可以改进这一点,但会减慢 UPDATE/INSERT/DELETE 语句的速度。
我建议选择反射(reflect)您将要使用的操作的数据类型。如果您根本不需要精度,则没有理由考虑使用 DECIMAL 或 FLOAT。
关于MySQL Math —— INTEGER 和 FLOAT 哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285660/