欢迎各位兄弟 发布技术文章
这里的技术是共享的
存储上区分:
FLOAT(p) | 如果0 <= p <= 24为4个字节, 如果25 <= p <= 53为8个字节 |
FLOAT | 4个字节 |
DECIMAL(和NUMERIC)的存储需求与具体版本有关:
使用二进制格式将9个十进制(基于10)数压缩为4个字节来表示DECIMAL列值。每个值的整数和分数部分的存储分别确定。每个9位数的倍数需要4个字节,并且“剩余的”位需要4个字节的一部分。
精度上区分:decimal是严格数值数据类型, float是近似数值数据类型。
float(M,D), eg: float(5, 2) 一共5位,2位精度; 数字433.22 可能存入的结果不是433.22。不要奢想它能如你所愿。
decimal(M, D), eg: decimal(5,2), 一共5位,小数点后2位,数字433.22存入到数据库中的结果也是433.22.
效率上区分:
float是最基本的数据类型,它的运算可以直接在cpu上运行,而decimal是mysql的数据类型,它的运算依赖于mysql。所以float效率更高。