Azure TableStorage - 性能

时间:2016-02-19 08:59:46

标签: c# azure azure-table-storage

我必须在Azure表存储上进行查询,其中我有以下设置: RowKey,PartitionKey,ThirdColumn

RowKey是唯一的,Partitionkey与ThirdColumn核心,意味着所有第三列的值为" Y ",将具有分区键" X &#34 ;.

我必须使用ThirdColumn值来获取分区键 X 的所有实体。这不符合要求,因为Y既不是PartitionKey也不是RowKey。

问题是:在第三列上执行.FirstOrDefault()是否有意义,以获取实体(任何实体),然后使用PartitionKey进行查询?我认为它会更好,因为它不必在不同的机器上搜索数据。

此致

2 个答案:

答案 0 :(得分:1)

为什么不将PartitionKey设为X和Y的组合值?比如“MyValueofX_MyValueofY”?

或者,如果您在查询时没有X的值,只需使用不同的顺序复制信息,例如:

PK:X RK:Z 专栏:Y

PK:Y RK:Z 专栏:X

这样,您可以在有X时和Y时查询记录。

检查Designing a Scalable Partition Strategy

答案 1 :(得分:0)

我想你可以看一下下面的文章:

https://msdn.microsoft.com/en-us/library/azure/dd894039.aspx

并尝试使用此代码获取第一个实体:

var query = (from entity in context.CreateQuery<Customer>("Top1Customers")
                 select entity).Take(1);

然后您可以将其写入名为First()

的方法中