如何减少App引擎中的查询配额?

时间:2015-04-06 21:32:39

标签: java google-app-engine google-cloud-datastore quota

用户将在数据存储区12中浏览(分页)已排序的实体。

 DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();

//get url parameter
int next = Integer.parseInt(request.getParameter("next") );
//query with sort
Query query = new Query("page").addSort("importance", SortDirection.DESCENDING );
PreparedQuery pq = datastore.prepare(query);

//get 12 entity from query result from the index (next)
FetchOptions options = FetchOptions.Builder.withLimit(12).chunkSize(12).offset(next);

for (Entity result : pq.asIterable(options)) {
    Text text = (Text)result.getProperty("content");
    Document doc = Jsoup.parse(text.getValue());

    //display the content
    .....
}

问题是当下一个变量增加时,配额消耗增加得更快!。

例如当下一个是6000时,配额消耗40%,而当下一个是10时消耗的配额少于1%。

1 个答案:

答案 0 :(得分:1)

如果您使用Google App Engine游标来简化分页,那么您的查询将会得到优化。不建议使用大偏移量。在GAE中进行分页的推荐方法是使用cursors