Uso de "Cursores" para la paginación en PostgreSQL [duplicado]

Posible duplicado:
¿Cómo proporcionar un cliente API con 1,000,000 resultados de base de datos?

Preguntándose por el uso deCursores es una buena manera de implementar la "paginación" usando PostgreSQL.

El caso de uso es que tenemos más de 100,000 filas que nos gustaría poner a disposición de nuestros clientes API. Pensamos que una buena manera de hacer que esto sucediera sería permitir al cliente solicitar la información en lotes (páginas). El cliente podría solicitar 100 filas a la vez. Devolveríamos las 100 filas así como un cursor, luego, cuando el cliente estuviera listo, podrían solicitar las siguientes 100 filas utilizando el cursor que les enviamos.

Sin embargo, estoy un poco confuso sobre cómo funcionan los cursores y exactamente cómo y cuándo se deben usar los cursores:

¿Los cursores requieren que una conexión de base de datos se deje abierta?¿Se ejecutan los cursores dentro de una transacción, bloqueando los recursos hasta que se "cierran"?¿Hay alguna otra "trampa" de la que no tenga conocimiento?¿Hay otra manera mejor de manejar esta situación?

¡Muchas gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta