表设计准则
设计用于 Azure 存储表服务的表与关系数据库的设计注意事项大不相同。 本文介绍设计表服务解决方案以实现高效读取和高效写入的准则。
设计表服务解决方案,实现高效读取
- 读取密集型应用程序中的查询设计。设计表时,在考虑将如何更新实体之前,请先考虑将执行的查询(特别是延迟敏感的查询)。 这通常会产生一个高效且高性能的解决方案。
- 在查询中指定 PartitionKey 和 RowKey。点查询 此类查询是最高效的表服务查询。
- 考虑存储实体的重复副本。表存储的成本较低,因此请考虑多次存储同一实体(使用不同的键)以实现更高效的查询。
- 考虑反规范数据。表存储的成本较低,因此请考虑反规范化数据。 例如,存储摘要实体,以便对聚合数据的查询只需访问单个实体。
- 使用复合键值。只有 PartitionKey 和 RowKey 键。 例如,使用复合键值来启用对实体的备用键控访问路径。
- 使用查询投影。可以通过使用只选择所需字段的查询来减少通过网络传输的数据量。
设计表服务解决方案,实现高效写入
- 不要创建热分区。选择在任何时间点都允许将请求分散到多个分区的键。
- 避免出现流量高峰。使流量在合理的时间段内均匀分布,并避免出现流量高峰。
- 不必要为每种类型的实体单独创建一个表。需要跨多个实体类型执行原子事务时,可将这些实体类型存储在同一个表的同一个分区中。
- 考虑必须实现的最大吞吐量。必须了解表服务的可伸缩性目标,并确保设计不会导致超出目标。
在阅读本指南时,会看到将所有这些原则付诸实践的示例。