1

我正在使用 azure table 服务。我想问的是,Azure 内部是否关心Table的概念?

使事情快速很大程度上取决于分区键和行键。表格看起来不像容器或实体分组,因为您可以创建的表格数量没有限制。总存储大小与我的存储帐户相关联。

那么 Table 只是一个帮助人们从 RDBMS 土地过渡的概念,还是它们在内部服务于某个目的?我可以用单表设计做应用程序而不用担心性能吗?毕竟,如果表只是一个标签,那么我也可以将其作为分区键的一部分。

编辑

举个例子,表分区键看起来很像 Cassandra 行,而表行就像 Cassandra 列。可以将存储视为一大桶键(RowKey)-值对。分区键是分片机制。然后 table 只是作为“标签”概念出现。

4

2 回答 2

2

您可以将所有实体存储在一个 azure 表存储中,并通过深思熟虑选择正确的分区键和行键组合来获得最佳性能,但恕我直言,最好将相关实体分别放在单独的表中,因为这很容易管理(从开发人员的角度来看)。你知道你的应用程序的哪个部分正在访问哪个表。

您可能希望查看此记录的会话,其中讨论了最佳实践和内部原理。 Windows Azure 存储:即将发生的事情、最佳实践和内部结构

于 2013-08-09T08:47:33.050 回答
0

您可以将 Table name 和 Partition Key 的并集视为一个性能单位。

您可能正在考虑重新发明FatEntities 的思维方式。 由 Lokad 开发。

“表”的概念有很多限制和问题。例如,如果您在一个分区中有一个包含 100,000 个条目的大表,那么如果不遍历每个条目,您就不能轻易地跳转到条目 99,001。倒退是不可能的(你不能从最后一个条目开始倒退)

于 2013-08-08T15:00:44.057 回答