Использование «курсоров» для подкачки страниц в PostgreSQL [дубликат]

Возможный дубликат:
Как предоставить клиенту API с 1 000 000 результатов базы данных?

Интересно об использованиикурсоры хороший способ реализовать «пейджинг» с использованием PostgreSQL.

Сценарий использования состоит в том, что у нас есть более 100 000 строк, которые мы хотели бы сделать доступными для наших клиентов API. Мы думали, что хороший способ сделать это состоял бы в том, чтобы позволить клиенту запрашивать информацию партиями (страницами). Клиент может запросить 100 строк одновременно. Мы бы вернули 100 строк и курсор, затем, когда клиент был готов, они могли запросить следующие 100 строк, используя курсор, который мы им отправили.

Тем не менее, я немного запутался в том, как работают курсоры и как именно и когда следует использовать курсоры:

Требуют ли курсоры, чтобы соединение с базой данных оставалось открытым?Запускаются ли курсоры внутри транзакции, блокируя ресурсы до тех пор, пока они не будут «закрыты»?Есть ли какие-то другие "ошибки", о которых я не знаю?Есть ли другой, лучший способ справиться с этой ситуацией?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос