Azure table 存储与 Google Appengine 数据存储中的索引

Indexing in Azure table storage vs Google Appengine datastore

Azure table 存储和 Google Appengine 数据存储都是非 sql 键值数据存储。 Google appengine 索引每个列上的数据,以便您可以对每个数据列变量进行快速 WHERE 查询。例如,假设我正在插入包含以下列的数据:
Date Author Book Reviews

Google Appengine 将继续为这些列中的每一列编制索引数据,以便快速进行以下查询:

- get all rows WHERE Date == something
- get all rows WHERE Author == someone
- get all rows WHERE Book == title
- get all rows WHERE Reviews >= 4

但看起来 azure table 存储并未对所有列的数据编制索引。它似乎只索引 {partition key, row key} 组合。那是对的吗?与 google 的数据存储相比,这似乎是一个重大缺点。为什么要这样设计? Here 是我找到的解决方法。

您说得对,PartionKey 和 RolWey 值是仅有的两个索引属性。正如您所提到的,您可以解决此限制。有关详细信息,请参阅以下 MSDN 文章中的分区内二级索引模式和分区间二级索引模式:https://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/。本文还包含您需要了解的有关 Azure Table.

的所有信息

如果您想讨论有关 table 设计的更多信息,可以给我们发送电子邮件至 ascl@microsoft.com。