Возможный дубликат:
Как предоставить клиенту API 1 000 000 результатов базы данных?
Интерес к использованию Cursors - хороший способ реализовать "подкачку" с помощью PostgreSQL.
Вариант использования состоит в том, что у нас есть более 100 000 строк, которые мы хотели бы предоставить нашим клиентам API. Мы думали, что хороший способ сделать это - разрешить клиенту запрашивать информацию партиями (страницами). Клиент может запросить 100 строк за раз. Мы вернем 100 строк, а также курсор, а затем, когда клиент будет готов, они могут запросить следующие 100 строк с помощью курсора, который мы отправили им.
Тем не менее, я немного туманно о том, как работают курсоры и как и как использовать курсоры:
- У курсоров требуется, чтобы соединение с базой данных оставалось открытым?
- Выполняются ли курсоры внутри транзакции, блокируя ресурсы до тех пор, пока они не будут закрыты?
- Есть ли еще какие-то "gotchas", о которых я не знаю?
- Есть ли другой, лучший способ справиться с этой ситуацией?
Большое спасибо!