我应该将主键拆分为分区键和行键组件吗?

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

我想将数据存储在Azure表中。此数据的主键将是MD5哈希。

为了在性能和可伸缩性之间取得良好的平衡,最好在Azure表中使用分区键和行键的组合。

我正在考虑在任意点将MD5哈希分成两部分。我可能会使用前三个左右的字符作为分区键,以便有更高的冲突可能性,因此最终会得到每个都有相当数量的Row条目的分区。其余字符将组成行键。这意味着数据分布在4,096个分区上。

整个数据集可能变得很大,大约有数十万条记录。

我知道在同一个分区中的条目之间可以更容易地完成原子操作;这对我来说不是一个问题。

这种密钥分裂方法值得考虑吗?或者我应该简单地采用更简单的方法并让分区密钥使用整个MD5哈希,并使用空行键?

primary-key azure-storage md5 azure-table-storage
1个回答
1
投票

你的两个方法都很好。基本上,4096个分区足以进行缩放;如果您想要更好的可伸缩性,请使用完整的MD5作为分区键,因为您不需要对分区进行原子操作。请注意,行键不能是空字符串,因此请考虑使用常量字符串或与分区键(完整MD5)相同的值。

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