答えはページ付けです。top_size
-最大数の結果または結果のレコード-を継続トークンnext_partition_key
と組み合わせて使用します。next_row_key
これにより、パフォーマンスに大きな違いが生じます。1つは、結果が単一のパーティションから得られる可能性が統計的に高いことです。明白な結果は、セットが行継続キーではなく、パーティション継続キーによってグループ化されていることを示しています。
つまり、UIまたはシステム出力についても考慮する必要があります。最大50の結果を10から20を超えて返すことを気にしないでください。ユーザーはおそらくこれ以上利用したり調べたりすることはありません。
ばかげているように聞こえます。「犬」をGoogleで検索すると、検索で返されるアイテムは10個だけであることがわかります。もういや。わざわざ「続行」を押すと、次のレコードが利用できます。調査によると、その最初のページを超えて冒険するユーザーはほとんどいません。
(キー値のselect
サブセットを返す)は違いを生む可能性があります。たとえば、select
="PartitionKey,RowKey"
または'Name'
必要な最小値を使用します。
「これらの境界を越えると、継続トークンも発生し、結果を取得するためにストレージへの追加のラウンドトリップが必要になると思います。これにより、パフォーマンスが低下し、トランザクション数(およびその後のコスト)が増加します。 。」
...少し間違っています。継続トークンが使用されるのは、境界を越えるためではなく、紺碧のテーブルで1000を超える結果が許可されないためです。したがって、2つの継続トークンが次のセットに使用されます。デフォルトのtop_sizeは基本的に1000です。
ご覧いただけるように、azurepythonapiからのクエリエンティティの説明を以下に示します。他はほとんど同じです。
'''
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']
'''