我有一个应用程序需要将加密货币值存储到 PostgreSQL 数据库。该应用程序使用任意精度整数,我必须将这些整数存储到数据库中。最有效的方法是什么?
为什么要任意精度?有两个原因:
- 为了安全。永远不会溢出。
- 必要时。比如以太坊内部默认使用uint256,1 Ether = 10^18 wei。因此,如果要寻求准确性(确实如此),交易将需要存储大量数字。
我想到的最佳解决方案是将数字转换为 blob 并将数字以原始格式存储为位。但我希望有更好的方法更适合数据库。
编辑:
我需要这种存储方法更好的原因是性能。我不想进入基准测试和所有这些细节。这就是为什么我让问题保持简单,否则它会变得复杂。所以问题是是否有合适的方法来做到这一点。
最佳答案
看看 documentation .
如果您需要效率但也依赖于准确的值(我同意这一点),那么您真的应该使用 decimal(precision, scale)
预先定义具有特定预设的列或不同的表。
如果您的测试表明标准数据类型的性能不够好,您可能想看看 bignum也许还有其他人。
关于postgresql - 在 PostgreSQL 中存储任意精度整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55306788/