我在SQL Server中有一个包含数十亿行的表。我想确保数据是只读的(不可变的),并且在插入数据库后总是不会更改。
我目前的想法是使用 SHA3哈希算法来制作哈希链。
HASH(current_row) = HASH(HASH(previous_row) + current_row) # as the hash content of the current row
上述解决方案存在以下缺点:
如果有数十亿行可能需要很长时间,因为每个记录哈希与前一记录的哈希相关。
它不允许并行计算。
考虑到性能,确保数据完整性的最实用方法是什么?
答案 0 :(得分:2)
数据完整性意味着别的东西。如果您需要确保某些用户不会更新和删除任何内容,请不要向他们提供更新和删除授权。
阅读是否具有高效性与助学金无关。您需要知道您的获取方案并设置正确的索引。如果这还不够,您可能需要其他更高级的技术(分片,只能从复制的从属中读取等)