【发布时间】:2011-05-03 02:36:40
【问题描述】:
我是 Azure 的新手!目的是根据存储在 RowKey 中的时间戳返回行。由于每个查询都有交易成本,我想在保持性能的同时尽量减少交易/查询的数量
这些是建议的分区和行键:
- 分区键: TextCache_(AccountID)_(ParentMessageId)
- 行键: (DateOfMessage)_(MessageId)
传奇:
- AccountId - 是一个整数
- ParentMessageId - 如果有,则为父 messageId,如果是父则为空
- DateOfMessage - 创建消息的日期 - 格式为 DateTime.Ticks.ToString("d19")
- MessageId - 消息的唯一 ID
我想从单个查询中返回 > 或 的行和任何子行
这可以通过我提议的 PartitionKeys 和 RowKeys 来完成吗?
即..(在伪代码中)
var results = ctx.PartitionKey.StartsWith(TextCache_AccountId)
&& ctx.RowKey > (TimeStamp)_MessageId
其次,如果我有多个帐户,并且只想返回前 10 个,是否可以通过单个查询完成
即..(在伪代码中)
var results = (
(
ctx.PartitionKey.StartsWith(TextCache_(AccountId1)) &&
&& ctx.RowKey > (TimeStamp1)_MessageId1 )
)
||
(
ctx.PartitionKey.StartsWith(TextCache_(AccountId2)) &&
&& ctx.RowKey > (TimeStamp2)_MessageId2 )
) ...
)
.Take(10)
【问题讨论】:
标签: performance azure azure-table-storage