0

我有一个带有~10,000 PartitionKey (PK) 的表,每个 PK 有~500,000 RowKey (RK) 作为“yyyyMMddHHmmss”

短的

当我尝试在没有 PK 的情况下使用“yyyyMMdd”格式的 RK 检索记录时,需要永远(字面意思)才能获得结果。

我的查询主要是 PK + RK 不幸的是,有些查询只能由 RK 检索。我知道在没有 PK 的情况下检索数据不是最好的方法,但我必须这样做。看起来这在现实生活中根本不是一种选择。

我能想到的唯一方法是保留另一个表来保存基于 RK 的 PK,我真的不想保留参考表,除非它绝对是处理这个问题的唯一方法)

代码

CloudStorageAccount account = CloudStorageAccount.DevelopmentStorageAccount;
CloudTableClient tableClient = account.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference("test");
table.CreateIfNotExists();
var query = new TableQuery<TestEntity>().Where("(RowKey ge '20050103') and (RowKey lt '20050104')");
var result = table.ExecuteQuery(query);

Debug.WriteLine(result.Count());
4

1 回答 1

0

正如您正确指出的那样,对于如此大量的数据,没有 PK 的检索是不可行的。

如果仅按日期检索是必要的,听起来很痛苦,我会说您的表模式的设计存在缺陷,需要重新设计。如果您想解释表格中数据的所有使用场景,也许这里的人们可以帮助您正确设计表格?

于 2013-06-05T03:26:21.823 回答