Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何减少App engine中的查询配额?_Java_Google App Engine_Google Cloud Datastore_Quota - Fatal编程技术网

Java 如何减少App engine中的查询配额?

Java 如何减少App engine中的查询配额?,java,google-app-engine,google-cloud-datastore,quota,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("importa

用户将在此时浏览(分页)数据存储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
    .....
}
问题是,当下一个变量增加时,配额消耗增加得更快


例如,当next为6000时,配额消耗量为40%,而当next为10时,配额消耗量小于1%。

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

能否详细说明一下您正在尝试执行的操作?这是一个简单的分页吗?如果一次只能显示12个项目,为什么“下一个”变量是?是的,它是简单的分页,下一个变量是12个项目结果的第一个实体的索引。因此,您的问题是,通过此实体列表分页会消耗您读取配额的40%?当您使用计数/偏移量时,它会通过偏移量读取每个实体,你得为此付出代价。相反,你应该使用游标:是的,这是我应该做的,那是因为我还没有完全阅读文档,谢谢。