Самый быстрый способ запроса для новейших элементов на столе Azure?

у меня есть лазурная таблица, где клиенты публикуют сообщения, могут быть миллионы сообщений в одной таблице. Я хочу найти Самый быстрый способ получения сообщений, размещенных в течение последних 10 минут (то, как часто я обновляю веб-страницу). Поскольку только ключ разбиения, я играл с идеей использования даты и времени, которое сообщение было размещено как Клавиша разбиения, например, строка как формат даты ISO8601, как «2009-06-15T13: 45: 30.0900000»

Пример PSEudo Code:

var message = "Hello word!";
var messagePartitionKey = DateTime.Now.ToString("o");
var messageEntity = new MessageEntity(messagePartitionKey, message);
dataSource.Insert(messageEntity);

, а затем запрос для сообщений, размещенных в течение последних 10 минут, как это ( Не пропущенный псевдо код снова):

// Get the date and time 10 minutes ago
var tenMinutesAgo = DateTime.Now.Subtract(new TimeSpan(0, 10, 0)).ToString("o");

// Query for the latest messages
var latestMessages = (from t in
   context.Messages
   where t.PartitionKey.CompareTo(tenMinutesAgo) <= 0
   select t
   )

Но это будет сделано хорошо по индексу? Или это приведет к полному сканированию таблицы? У кого-нибудь есть лучшая идея сделать это? Я знаю, что есть временная метка на каждом элементе таблицы, но это не проиндексирован, так что это будет слишком медленно для моей цели.

13
задан 7 September 2011 в 21:08
поделиться