所以我知道,对于更大的数据,我们不会使用合约来保存数据,而是使用某种外部数据库。 但我不确定多大才算太大,以及如果我们为了用户查看而保存大量数据会发生什么。
例如,映射
mapping(uint256 => uint256) public Vals
与一千个 uint256
值。仅仅为了用户查看而保存的数据会太多吗?我怎么知道它是否真的是太多数据?
保存10k长的映射值只是为了用户查看。
您可以保存任意数量的数据,但您应该知道它非常昂贵。
快速细分:
1 uint256 = 1 个存储槽。
1 个新存储槽写入 = 20,000 Gas。
现在,20,000 个 Gas 在以太坊主网上的价格约为 25 美分。
10,000 个插槽?那是 2,500 美元。我什至没有提到存储读取成本(在某些时候您会读取它们,对吧?)。 可行吗?或许。你需要分析成本是否大于收益。
想探索更便宜的网络吗?查看:CryptoNeur 的 Gas 费用计算器。
最后,考虑将大数据存储在IPFS上,并将IPFS路径存储在区块链上。