在SQL数据库存储货币值时所涉及数据类型的臭名远扬的问题
然而,在这个艰难时期,我们现在有了价值高达18位小数的货币(感谢以太坊)。
这再次引发了经典争论。
想法
选项1 BIGINT
使用大整数来保存实际值,然后存储货币的小数位数(在翻译中简单地将A
除以10^B
)?
选项2 Decimal(60,30)
使用大型十进制数存储数据类型,这必然会占用大量空间。
选项3 VARCHAR(64)
存储在字符串中。这会对性能产生影响。
我想知道人们的想法,以及如果他们正在处理加密货币价值,他们使用什么方法。因为我对最佳处理方法感到困惑。
VARCHAR
)和使用DECIMAL
进行计算的算法会相当慢,但与某些快速但棘手的方法相比,后者使用了BIGINT
和DOUBLE
的组合,两个双精度浮点数或其他类型。虽然前者更容易理解。 - BinarusDOUBLE
精度可能已经足够了。 - Rick James