Azure表存储按rowkey性能选择

时间:2012-08-24 04:21:57

标签: azure-table-storage

说我有2k分区。 I.E. 2k个不同的分区键。所有分区都有3个guid rowkey。

举例说明:

分区1 - Guid 1(rowkey) - Guid 2(rowkey) - Guid 3(rowkey)

分区2 - Guid 4(rowkey) - Guid 5(rowkey) - Guid 6(rowkey)

....等等。

如果我要查询所有分区中的确切guid。我会看到什么样的查询性能?直接检索或表扫描?

更多背景信息。 我打算有以下架构:

UserEntity
分区键 - 用户指南
行键 - 用户名

OpenIdEntity
分区键 - 用户指南(与UserEntity相同)
行键 - OpenId

现在,当用户登录时,我需要 1)找到开放ID(在这里选择具有1个不同rowkey的记录,不管分区如何) 2)找到用户名。 (选择具有1个不同分区键的记录。表扫描属性或其他内容。由于分区键已知且分区很小,表扫描的影响应该是最小的)

如果Azure表存储扫描整个表以找到1个不同的rowkey,我担心第1步会很慢。

提前致谢。

1 个答案:

答案 0 :(得分:5)

您的担忧是有道理的。 “具有RowKey X的所有实体”形式的查询将导致全表扫描。

如果您知道正在使用的分区键集,则可以发出 n 并行查询(每个分区一个)。例如,“具有PartitionKey 1和RowKey X的所有实体”,“具有PartitionKey 2和RowKey X的所有实体”等。并行发布这些将意味着您正在进行 n 直接查找,这通常会比桌面扫描快得多。