在PostgreSQL中存储任意精度整数

问题描述 投票:1回答:1

我有一个应用程序需要将加密货币值存储到PostgreSQL数据库。应用程序使用任意精度整数,以及我必须存储到数据库的整数。最有效的方法是什么?

为什么任意精度?有两个原因:

  1. 为了安全。永远不会有溢出。
  2. 为了必要。例如,以太坊默认在内部使用uint256,并且1 Ether = 10 ^ 18 wei。因此,如果要寻求准确性,交易将具有巨大的数字位数(这是它)。

我想出的最佳解决方案是将数字转换为blob并将数字存储为原始格式的位。但我希望有一种更适合数据库的更好方法。

编辑:

我需要这种存储方法更好的原因是性能。我不想进入基准和所有这些细节。这就是为什么我要保持简单的问题,否则它会变得复杂。所以问题是,是否有正确的方法来做到这一点。

postgresql gmp arbitrary-precision cryptocurrency
1个回答
0
投票

看看documentation

如果您需要效率但又依赖于准确的值(我同意),那么您应该使用decimal(precision, scale)预先定义具有特定预设的列或不同表。

如果您的测试显示标准数据类型的性能不够好,您可能需要查看bignum和其他人。

© www.soinside.com 2019 - 2024. All rights reserved.