首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql数据库中存储比特币和其他货币

如何在mysql数据库中存储比特币和其他货币
EN

Stack Overflow用户
提问于 2017-12-19 14:32:49
回答 1查看 2.3K关注 0票数 4

我试着建立支付系统。客户可以用比特币或其他费用购买,比如(美元,欧元)我有一个十进制金额列(16,8),对于比特币的数量它正常工作,但是当我试图把美元的价值--例如100美元--变成100.00000000,我的问题是应该存储这样的金额吗?对比特币和其他货币使用相同的十进制行吗?当计算所有记录时,这对性能有影响吗?或者我应该有多列比特币小数点(16,8)和其他货币小数点(10,2),给我一个方法-请考虑数以百万计的记录,当你回答。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-21 15:03:42

性能有两个方面--速度和空间。速度通常不是一个问题,因为获取行比操纵十进制/双/等的代价要高得多。如果您谈论的是10亿行,空间可能是一个问题(并导致减速)。

经验法则:DECIMAL(m,n)使用m/2字节。在(16,8)的情况下,它只需要8个字节。

DOUBLE需要8个字节;BIGINT:8个字节。等。

不要对数值使用VARCHAR,特别是当您需要对它们进行排序时。

FLOATDOUBLE会产生额外的舍入(十进制到二进制),导致可能的舍入错误,特别是当加了大量数字时。

我不确定,8位小数点是比特币的官方最高要求,对任何其他货币来说都是足够的。对于目前使用的货币来说,4是我听说的最多的一种货币。(英镑/先令/便士不再使用。)

DECIMAL(16,8)溢额为1亿美元/欧元/其他。确保这就足够了。DECIMAL(17,8)也需要8个字节,最多可达10亿字节。所以你最好用17而不是16。

回到问题上..。没有“完美”的答案。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47889200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档