2016-02-19 84 views
0

我不得不做出一個藍色的表存儲在那裏我有以下設置的查詢:RowKey,PartitionKey,ThirdColumn天青TableStorage - 性能

的RowKey是獨一無二的,而Partitionkey與ThirdColumn corelates,這意味着所有具有值「Y」的第三列將具有分區密鑰「X」。

我必須通過使用ThirdColumn值來獲取分區鍵爲X的所有實體。這不會是高性能的,因爲Y既不是PartitionKey也不是RowKey。

問題是:在第三列上執行.FirstOrDefault()以獲取實體(任何實體),然後使用PartitionKey執行查詢是否有意義?我認爲它會更好,因爲那樣它就不必在不同的機器上搜索數據。

Regards,

+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

0

我覺得你可以看看下面的文章:

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

,並嘗試這個代碼,以獲得第一1個實體:

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

然後你就可以將它寫入到一個名爲方法第一個()