2

我有一个名为 users 的 Azure 表,其中有几个与用户相关的字段,我有 PartitionKey 作为 UserId 和 RowKey 作为 CompanyId,我想通过不是 PartionKey 或 RowKey 的电子邮件字段查询表,是否可以像这样查询表?

如果是,那么最好在没有 PartitionKey 和 RowKey 的情况下进行查询

4

2 回答 2

6

您可以不使用PartitionKeyor进行查询,RowKey并且表服务不会抛出任何错误,但是请记住,这将从第一个 PartitionKey/RowKey 组合开始进行全表扫描,直到找到匹配实体为止。

如果您的桌子很小,这可能不是问题。但是,如果您的桌子变大,这将是一个问题。您可能不会获得任何数据,而只是继续令牌,并且您需要使用该继续令牌再次查询您的表。

如果您想查询电子邮件字段,我强烈建议您复制您的数据,以便电子邮件字段成为PartitionKey.

不确定您是否已经阅读过这篇文章,但我强烈建议您阅读Azure Table Storage Design Guidehttps ://azure.microsoft.com/en-in/documentation/articles/storage-table-design-guide/ 。

于 2016-04-06T15:06:48.807 回答
0

查询性能

你可以,但它会是全扫描,这是使用表存储的最坏情况。

你应该改变你的设计,你应该至少使用其中一个键。您可以为您的公司创建存储表,并使您的电子邮件成为分区键的一部分。

注:图片由本文拍摄

于 2016-04-06T15:18:00.030 回答