Dav*_*ury 4 azure azure-storage azure-table-storage
您在以下场景中推荐什么:
我有一个名为Users的azure表,其中列为:
然后,每个用户都有不同类型的任务,我们称之为TaskType1和TaskType2.
两种任务类型都有公共列,但是也有类型特定的列,如下所示:
然后TaskType1有其他列:
和TaskType2有自己的特定列:
我知道我可以将两种类型存储在同一个表中,我的问题是:
如果我为TaskType1和TaskType2使用不同的表,那么对交易成本的影响是什么?我猜想如果我为每个任务类型都有2个表,然后我将发出一个类似的查询:get me all tasks where the task Primarykey is equal to a specific user from Users table PrimaryKey那么我将不得不为每种类型运行2个查询(因为用户可以同时拥有两种任务类型),这意味着更多的事务...而不是如果两个任务都在同一个表中,那么它将像1个查询(在分页事务后的限制为1000),因为我将获得PartitionKey是用户PartitionKey的所有行,因此分区不分割,这意味着1个事务权限?
所以我理解正确的是,如果我将任务存储在不同的表中,我会有更多的交易.
你的理解是完全正确的.将任务拆分为2个单独的表将意味着2个单独的查询因此2个事务(让我们暂时保留超过1000个实体的等式).虽然交易成本是将它们保存在同一个表中的一个原因,但还有其他原因:
Entity Group Transaction两个实体(一个用于任务1,另一个用于任务2)将具有相同的PartitionKey(即用户ID).如果将它们保存在单独的表中,则无法利用实体组事务.我要给出的一个建议是在Tasks表中有一个"TaskType"属性.这样你就可以更轻松地按任务过滤.
| 归档时间: |
|
| 查看次数: |
1453 次 |
| 最近记录: |