Verwenden von "Cursors" zum Blättern in PostgreSQL [duplizieren]

Mögliche Duplikate:
Wie versorge ich einen API-Client mit 1.000.000 Datenbankergebnissen?

Fragen über die Verwendung vonCursor ist eine gute Möglichkeit, "Paging" mit PostgreSQL zu implementieren.

Der Anwendungsfall ist, dass wir über 100.000 Zeilen verfügen, die wir unseren API-Clients zur Verfügung stellen möchten. Wir dachten, ein guter Weg, um dies zu erreichen, wäre es, dem Kunden zu ermöglichen, die Informationen in Stapeln (Seiten) anzufordern. Der Client kann jeweils 100 Zeilen anfordern. Wir würden die 100 Zeilen sowie einen Cursor zurückgeben, und wenn der Client bereit wäre, könnten sie die nächsten 100 Zeilen mithilfe des Cursors anfordern, den wir ihnen gesendet haben.

Allerdings bin ich ein wenig unsicher, wie Cursor funktionieren und wie und wann sie genau verwendet werden sollten:

Müssen die Cursor eine Datenbankverbindung offen lassen?Laufen die Cursor in einer Transaktion und sperren Ressourcen, bis sie "geschlossen" sind?Gibt es noch andere "Fallstricke", die mir nicht bekannt sind?Gibt es eine andere, bessere Möglichkeit, mit dieser Situation umzugehen?

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage