Как отмечает @Dimu, статистические данные, рассчитываемые Google на периодической основе, являются хорошим ресурсом для перехода, когда нет необходимости в точных подсчетах и% записей НЕ кардинально меняется в течение любого дня.
Чтобы запросить статистику для данного вида, вы можете использовать следующую структуру GQL:
select * from __Stat_Kind__ where kind_name = 'Person'
Существует несколько свойств, которые могут быть возвращены этим:
count
- количество сущностей этого вида
bytes
- общий размер всех сущностей, хранящихся в этом виде
timestamp
- по состоянию на дата / время, когда статистика в последний раз вычислялась
Пример кода
Чтобы ответить на последующий вопрос, опубликованный в качестве комментария к моему ответу, я сейчас предоставляю пример используемого C#
кода, который, по общему признанию, может быть не таким надежным, как должен, но, похоже, работает нормально. для меня:
/// <summary>Returns an *estimated* number of entities of a given kind</summary>
public static long GetEstimatedEntityCount(this DatastoreDb database, string kind)
{
var query = new GqlQuery
{
QueryString = $"select * from __Stat_Kind__ where kind_name = '{kind}'",
AllowLiterals = true
};
var result = database.RunQuery(query);
return (long) (result?.Entities?[0]?["count"] ?? 0L);
}