Kur*_*ula 0 azure azure-table-storage
我试图查询天蓝色表存储上的时间戳列.我有一个where条件,检查输入值是否大于timestamp值.azure时间戳列不是分区键或行键.我开始知道查询不是分区的列或行密钥会降低查询执行的性能.当有越来越多的记录时,我的应用程序非常慢.我试图将时间戳数据移动到分区键数据,但分区键不接受时间戳值,如"4/13/2016 5:20:03 AM +00:00".什么是提高查询性能的最佳选择.
正如您已经提到的,如果查询不包含PartitionKey和/或RowKey查询将会很慢,因为Table服务正在进行全表扫描.建议是使用日期/时间值作为PartitionKey值.
我试图将时间戳数据移动到分区密钥数据,但分区密钥不接受时间戳值,如"4/13/2016 5:20:03 AM +00:00"
这是因为该值包含不允许的字符(https://msdn.microsoft.com/en-us/library/azure/dd179338.aspx - >请参阅Characters Disallowed in Key Fields部分).
实际上你可以做很多事情来解决这个问题:
YYYY-MM-DDThh:mm:ss格式.您可以将日期/时间值转换为刻度并在前面添加一些零并保存为PartitionKey.就像是:
PartitionKey Value = YourDateTimeValue.Ticks.ToString("d19");
如果您希望最新的条目出现在顶部,您可以执行以下操作:
PartitionKey Value = (DateTime.MaxValue.Ticks - YourDateTimeValue.Ticks).ToString("d19");
Run Code Online (Sandbox Code Playgroud)
您可能还会发现这很有用:https://azure.microsoft.com/en-in/documentation/articles/storage-table-design-guide/.
| 归档时间: |
|
| 查看次数: |
552 次 |
| 最近记录: |