Python google应用程序引擎分页和游标

Python google应用程序引擎分页和游标,python,google-app-engine,cursor,google-cloud-datastore,Python,Google App Engine,Cursor,Google Cloud Datastore,我正在尝试使用python数据存储api在google app engine上的应用程序中实现分页。我的要求是使用无限列表显示用户数据。我当前的实现是将游标与以下内容一起使用: //retrieve current_cursor all_data = my_data.all().order('-created') data = all_data.fetch(limit=10, start_cursor=current_cursor) current_cursor

我正在尝试使用python数据存储api在google app engine上的应用程序中实现分页。我的要求是使用无限列表显示用户数据。我当前的实现是将游标与以下内容一起使用:

    //retrieve current_cursor
    all_data = my_data.all().order('-created')
    data = all_data.fetch(limit=10, start_cursor=current_cursor)
    current_cursor = all_data.cursor()
    //save current_cursor
据我所知,游标作用于查询的结果集,这节省了后续查询(但不是第一次)的时间,对吗

我担心的是,如果我们有大量的数据,第一次查询仍然会太慢。为了加快第一次查询的速度,我的想法是,不必查询所有数据,而是将查询分解为多个较小的查询,例如使用
(“created>”、特定日期)
设置一个过滤器,并使用光标在每个集合中获取结果

然而,缺点是我必须自己维护
特定的_日期
,如果选择不当,可能会花费我大量的数据库读取时间


所以我的问题是,我是否正确理解光标?另外,是否有更好的方法使用谷歌数据存储来支持这一点,或者有任何建议来实现这一点?谢谢

否,第一次查询不会变慢。使用游标的优点是,它只处理特定的集合,这取决于游标位置和限制,与偏移和限制组合不同,偏移和限制组合处理整个数据集,只显示所需的部分

查询游标允许应用程序以方便的批量检索查询结果,而不会产生查询偏移量的开销


关于建议,对于分页,光标是最好的选择,其他建议也可以使用,通过使用get_by_id尽量利用memcache。

有帮助吗?您是否确实遇到性能问题?谢谢!我之前确实读过这篇文章,但仍然无法理解,而且仍然觉得第一个问题需要更长的时间。现在看来可能是别的事情了。我会回去查我的密码。所以第一次它不会查询整个事件,而只是查询我获取的结果的数量?看来我完全错了。谢谢我还要看一看投影图。