【问题标题】:How to chose Azure Table ParitionKey and RowKey for table that already has a unique attribute如何为已经具有唯一属性的表选择 Azure Table PartitionKey 和 RowKey
【发布时间】:2011-01-24 04:33:41
【问题描述】:

我的实体是一个键值对。 90% 的时间我会根据键检索实体,但 10% 的时间我还会进行反向查找,即我将按值搜索并获取键。

键和值都保证是唯一的,因此它们的组合也保证是唯一的。

Key作为PartitionKey,Value作为RowKey是否正确?

我相信这也将确保我的数据在服务器之间完美负载平衡,因为 ParitionKey 是唯一的。

上述决定有什么问题吗? 在任何情况下都有一个硬编码的分区键是否可行?即所有行都有相同的分区键?并保持 RowKey 唯一?

【问题讨论】:

    标签: azure azure-table-storage


    【解决方案1】:

    是否可行,是的,但根据您的数据大小,我不太确定这是一个好主意。当你查询分区键时,表格存储可以直接进入确切的分区并检索你的所有记录。如果单独查询 Rowkey,表存储必须检查该行是否存在于表的每个分区中。因此,如果您有 1000 个键值对,则按您的键搜索将读取单个分区/行。如果您仅通过您的值进行搜索,它将读取所有 1000 个分区!

    我遇到了类似的问题,我解决了两种方法:

    1. 有 2 个不同的表,一个以 partitionKey 作为 your-key,另一个以 your-value 作为 partitionKey。存储很便宜,所以复制数据应该不会花费太多。

    2. (我最后做了什么)如果您基于唯一键有效地返回单个实体,只需将它们粘贴在 blob 中(如第 1 点中那样分区和旋转),因为您不需要遍历表,所以不要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多