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

use*_*679 10 partitioning scalability azure azure-table-storage

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

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

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

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

use*_*559 12

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

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


Stu*_*art 6

史蒂夫回答+1.

有些事要补充