表设计准则

设计用于 Azure 存储表服务的表与关系数据库的设计注意事项大不相同。 本文介绍设计表服务解决方案以实现高效读取和高效写入的准则。

设计表服务解决方案,实现高效读取

  • 读取密集型应用程序中的查询设计。设计表时,在考虑将如何更新实体之前,请先考虑将执行的查询(特别是延迟敏感的查询)。 这通常会产生一个高效且高性能的解决方案。
  • 在查询中指定 PartitionKey 和 RowKey。类似于这样的点查询是最高效的表服务查询。
  • 考虑存储实体的重复副本。表存储的成本较低,因此请考虑多次存储同一实体(使用不同的键)以实现更高效的查询。
  • 考虑反规范数据。表存储的成本较低,因此请考虑反规范化数据。 例如,存储摘要实体,以便对聚合数据的查询只需访问单个实体。
  • 使用复合键值。只有 PartitionKey 和 RowKey 键。 例如,使用复合键值来启用对实体的备用键控访问路径。
  • 使用查询投影。可以通过使用只选择所需字段的查询来减少通过网络传输的数据量。

设计表服务解决方案,实现高效写入

  • 不要创建热分区。选择在任何时间点都允许将请求分散到多个分区的键。
  • 避免出现流量高峰。使流量在合理的时间段内均匀分布,并避免出现流量高峰。
  • 不必要为每种类型的实体单独创建一个表。需要跨多个实体类型执行原子事务时,可将这些实体类型存储在同一个表的同一个分区中。
  • 考虑必须实现的最大吞吐量。必须了解表服务的可伸缩性目标,并确保设计不会导致超出目标。

在阅读本指南时,会看到将所有这些原则付诸实践的示例。

后续步骤