具有许多分区键的Azure表存储表与具有较少分区键的许多表相比如何?

时间:2011-06-12 04:41:37

标签: azure scalability partitioning azure-table-storage

我有一个Windows Azure应用程序,其中TableA的所有读取查询都在一系列rowkeys的单个分区上执行。促进此存储方案的分区键实际上是层次结构中对象的扁平化名称,因此分区键的格式类似于{root}_{child1}_{child2}_{leaf}。我可以理解如何通过在表的命名中使用分区键的根维度将这个大的TableA划分为多个表可能是有益的(因此分区键将变为{child1}_{child2}_{leaf})。

我想要做的是尽可能快地从尽可能多的连接访问这些数据。如果我能弄清楚这些限制是什么或应该是什么,那也是不可思议的。

有关我提议的更改的更具体问题:

  1. 这是否会对可扩展性产生影响,即可以在不显着改善性能的情况下提供同步数据访问请求的数量?同时送达?
  2. 这会对平均表现产生影响吗?潜在的表现?

2 个答案:

答案 0 :(得分:11)

如果每个查询都指定了一个分区键,则这些分区分布的表数没有区别。换句话说,以下是等效的:一个表有一千个分区,一千个表有一个分区。

我可以考虑考虑拆分成多个表的主要原因是您可以在单个操作/事务中删除整个表,而不能在同一个表中使用一系列分区。这意味着对于像日志这样的东西,你可能想要在一段时间后删除旧版本,通常最好在不同的时间范围内使用不同的表格。

答案 1 :(得分:6)

史蒂夫的回答是

+1。

要添加的一些内容