性能有两个方面——速度和空间。速度通常不是问题,因为获取行比操作十进制/双精度/等的成本要高得多。如果您谈论的是 10 亿行,空间可能是一个问题(并导致速度变慢)。
经验法则: DECIMAL(m,n)大约m/2字节。在 的情况下(16,8),它正好需要 8 个字节。
DOUBLE占用 8 个字节;BIGINT: 8 个字节。等等。
不要VARCHAR用于数值,特别是当你需要对它们进行排序时。
FLOAT并DOUBLE导致额外的舍入(十进制到/从二进制),导致可能的舍入错误,尤其是在将大量数字相加时。
我不确定,8 位小数是比特币所需的官方最大值,对于任何其他货币来说都绰绰有余。对于当前使用的货币,4 是我听说最多的。(不再使用英镑/先令/便士。)
DECIMAL(16,8)以 100,000,000 美元/欧元/任何方式溢出。确保这足够了。 DECIMAL(17,8)也需要 8 个字节,最大为十亿。所以你也可以使用 17 而不是 16。
回到问题......没有“完美”的答案。
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |