答案是分頁。結合next_partition_key
和next_row_key
連續令牌,使用top_size
- 結果中的最大數量或結果記錄。這在性能上甚至產生了顯着的因果差異。首先,你的結果在統計上更可能來自單個分區。普通的結果顯示集合按分區連續鍵而不是行連續鍵分組。
換句話說,您還需要考慮您的UI或系統輸出。不要打擾返回超過10到20個結果最多50.用戶可能不會再使用或檢查。
聽起來很愚蠢。做一個谷歌搜索「狗」,並注意到搜索只返回10個項目。不再。如果你打擾'繼續'下一個記錄是有用的。研究已經證明,幾乎沒有用戶冒險超出第一頁。
select
(返回鍵值的一個子集)可能會有所作爲;例如,使用select
= "PartitionKey,RowKey"
或'Name'
無論您需要什麼最低限度。
「我相信,跨越這些邊界的效應也導致了 在延續令牌,這需要額外的往返到 存儲檢索結果。這就導致減少 性能,以及一個交易次數增加(並且後續成本爲 )。「
...稍微不正確。連續令牌的使用不是因爲跨越邊界,而是因爲天藍色的表格允許不超過1000個結果;因此這兩個連續令牌用於下一組。默認top_size基本上是1000.
爲了您的欣賞愉悅,以下是來自azure python api的查詢實體的描述。其他人也大致相同。
'''
Get entities in a table; includes the $filter and $select options.
table_name: Table to query.
filter:
Optional. Filter as described at
http://msdn.microsoft.com/en-us/library/windowsazure/dd894031.aspx
select: Optional. Property names to select from the entities.
top: Optional. Maximum number of entities to return.
next_partition_key:
Optional. When top is used, the next partition key is stored in
result.x_ms_continuation['NextPartitionKey']
next_row_key:
Optional. When top is used, the next partition key is stored in
result.x_ms_continuation['NextRowKey']
'''
你說過「你保證的性能級別是在分區級設置的明確性。」這個集合/我在哪裏可以找到關於這個的信息? – 2011-01-28 21:02:53