Я пытаюсь реализовать пейджинг в своем приложении в google-приложении, используя python datastore api. Мое требование - отображать пользовательские данные, используя бесконечный список. Моя текущая реализация использует курсор с чем-то вроде этого:поисковый движок google app и курсор
//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
В моем понимании, курсор работает на запрашиваемый result_set, что позволяет экономить время последующих запросов (но не первый), я правильно?
Я обеспокоен тем, что если у нас есть большой объем данных, первый запрос всегда будет слишком медленным. Для того чтобы сделать запрос в первый раз быстрее, я считаю, что вместо запроса всех данных я разбиваю запрос на несколько меньших, например, устанавливая фильтр с помощью ('created >', certain_date)
и используя курсор для получения результатов в каждом наборе.
Однако недостатком является то, что я должен буду поддерживать certain_date
самостоятельно, и если вы не выбрали его с умом, это может стоить мне большого количества прочитанных баз данных.
Итак, мой вопрос: правильно ли я понимаю курсор? Кроме того, существуют ли более эффективные способы использования Google Datastore для поддержки этого или любых предложений в целом для реализации этого? Благодаря!
Есть ли [это] (http://stackoverflow.com/questions/6557791/how-to-understand-cursor-correctly) помощь? Вы действительно испытываете проблемы с производительностью? – tx802
Спасибо! Я прочитал сообщение раньше, но все еще не мог понять, и все еще чувствовал, что первый запрос занял больше времени. Теперь похоже, что это могут быть другие вещи. Я вернусь, чтобы проверить мои коды. –