【发布时间】:2017-04-18 04:03:07
【问题描述】:
我在 SQL Server 中有一个包含数十亿行的表。我想确保数据是只读的(不可变的),并且在插入数据库后始终不会更改。
我目前的想法是使用SHA3哈希算法来做一个哈希链。
HASH(current_row) = HASH(HASH(previous_row) + current_row) # as the hash content of the current row
上述方案存在以下不足:
如果有数十亿行,则可能需要很长时间,因为每个记录哈希都与前一条记录的哈希相关。
它不允许并行计算。
考虑到性能,确保数据完整性的最实用方法是什么?
【问题讨论】:
-
@marc_s 但是如果数据库本身是只读的,我该如何插入数据。
标签: sql-server database database-design database-integrity