在天蓝色表存储中有多个分区键是一个很好的读取查询设计?

时间:2015-08-04 18:38:54

标签: azure-storage azure-table-storage

我知道有许多分区键可以减少Azure表存储中的批处理(EGT)。不过我想知道在阅读方面是否有任何性能问题?例如,如果我设计了我的Azure表,以便每个新实体都有一个新的分区键,并且我最终拥有1M或更多的分区键。读取查询有任何性能不合理吗?

2 个答案:

答案 0 :(得分:2)

如果您完成的最常操作是Point Query(指定了PartitionKey和RowKey),则unique-partition-key设计非常好。但是,如果您的查询操作通常是表扫描(未指定分区键),则设计将非常糟糕。

有关详细信息,请参阅Azure Table Design Guide中的“查询设计”一章。

答案 1 :(得分:0)

通过使用等式谓词指定单个PartitionKey和RowKey,点查询是检索单个实体的最有效查询。如果您的PartitionKey是唯一的,您可以考虑使用常量字符串作为RowKey来使您能够利用点查询。设计的选择还取决于您计划如何读取/检索数据。如果您总是计划使用点查询来检索数据,那么这种设计是有意义的。

请参阅以下文章http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx中的“每个实体的新分区键值”部分。简而言之,它可以很好地扩展,因为我们的存储系统可以选择对多个分区进行负载平衡。但是,如果您的应用程序要求您在不指定PartionKey的情况下检索数据,那么它将是低效的,因为它将导致表扫描。 如果您想进一步讨论您的桌面设计,请给我发电子邮件@ ascl@microsoft.com。