Azure表集查询

Azure表集查询,azure,azure-table-storage,Azure,Azure Table Storage,我试图实现如下结构:使用属性名“u:uid”,这样我就可以执行类似[(u:112 eq 1)或(u:118 eq 1)或(u:119 eq 1)]的查询。它有可能完成工作,只是我担心这对搜索数百个uid这样的情况不好。当应用程序增长时,“列”的数量可以增长到数万。熟悉azure table体系结构的人能对此有所了解吗?还有其他方法可以实现相同的结构吗?这里有几点: 您不能用:命名属性 假设u是表中的一个属性名,仅对其进行查询将导致整个表扫描,因为您的查询不包括PartitionKey。虽然如果

我试图实现如下结构:使用属性名“u:uid”,这样我就可以执行类似[(u:112 eq 1)或(u:118 eq 1)或(u:119 eq 1)]的查询。它有可能完成工作,只是我担心这对搜索数百个uid这样的情况不好。当应用程序增长时,“列”的数量可以增长到数万。熟悉azure table体系结构的人能对此有所了解吗?还有其他方法可以实现相同的结构吗?

这里有几点:

  • 您不能用
    命名属性
  • 假设
    u
    是表中的一个属性名,仅对其进行查询将导致整个表扫描,因为您的查询不包括
    PartitionKey
    。虽然如果您的表很小,这可能不是问题,但是随着表变大,会产生很多问题
如果
uid
是唯一的,我建议您将其值设置为PartitionKey,然后您可以像

(PartitionKey eq '112') or (PartitionKey eq '118') or (PartitionKey eq '119')

我强烈建议在继续之前阅读Windows Azure存储团队的这篇博文:。

感谢您的快速回复。不幸的是,在我的例子中,我已经使用了其他属性作为PartitionKey和RowKey。您认为像(u11、u133、u134……)这样有数千个键(“列”)会有问题吗?每个实体最多有256个键(属性-->列),因此不能在一个实体中有1000个键。其次,确保在查询中始终使用
PartitionKey
。从查询中省略它肯定会产生负面影响。你能用你计划使用的完整数据结构更新你的问题吗?这肯定会有助于为您提供一个有意义的答案。256键的限制确实使我的方法不可能实现。所以本质上我必须像(1,332333288833322)中的uid一样进行查询。由于Partitionkey已被占用,因此我必须尝试使用属性值来实现此目的。请注意,中的
,也不受支持。您必须像您的问题中那样进行
查询。