我有一个azure存储表,用于存储从多个源更新的状态。我有分区键作为源ID(每个源都是唯一的)。现在,对于任何给定的源ID,我想访问上次更新的状态。我可以通过按时间戳按降序对分区中的结果进行排序并获取第一条记录来实现这一点,但它似乎并不是非常高效。每个分区可以有超过1000条记录,排序似乎不是最好的方法。
有没有其他方法可以有效地实现同样的目标?分区中的实体是否已按我可以利用的某个行键排序?
答案 0 :(得分:6)
在RowKey中插入一个值"减少"随着时间的推移。我用这个:
myentity.RowKey = String.Format("{0:D19}", DateTime.MaxValue.Ticks - DateTime.UtcNow.Ticks)
;
现在,您可以在主键上执行具有where条件的select,然后执行Take(1)。这将为您提供最新的项目。