Używanie „Kursorów” do stronicowania w PostgreSQL [duplikat]

Możliwy duplikat:
Jak udostępnić klientowi API wyniki z bazy danych o wartości 1 000 000?

Zastanawiasz się nad użyciemKursory to dobry sposób na wdrożenie „stronicowania” za pomocą PostgreSQL.

Przypadek użycia jest taki, że mamy ponad 100 000 wierszy, które chcielibyśmy udostępnić naszym klientom API. Pomyśleliśmy, że dobrym sposobem na osiągnięcie tego celu będzie umożliwienie klientowi żądania informacji w partiach (stronach). Klient może żądać 100 wierszy na raz. Zwracalibyśmy 100 wierszy oraz kursor, a gdy klient był gotowy, mogliby zażądać kolejnych 100 wierszy za pomocą kursora, który do nich wysłaliśmy.

Jednak jestem trochę zamglony, jak kursory działają i dokładnie, jak i kiedy należy używać kursorów:

Czy kursory wymagają pozostawienia otwartego połączenia z bazą danych?Czy kursory działają wewnątrz transakcji, blokując zasoby, dopóki nie zostaną „zamknięte”?Czy są jakieś inne „chałupy”, o których nie wiem?Czy istnieje inny, lepszy sposób na załatwienie tej sytuacji?

Dzięki wielkie!

questionAnswers(2)

yourAnswerToTheQuestion