Cursor (base de datos)
Un puntero en un conjunto de resultados que te permite recuperar filas en porciones en lugar de todas a la vez. Existe porque una consulta con diez millones de filas de otra manera tendría que caber en la memoria del cliente.
Con DECLARE y FETCH, el servidor realiza un seguimiento de dónde estás, y el cliente puede transmitir a través de cuánto sea con uso de memoria constante. Es la herramienta correcta para transmitir datos grandes, exportar tablas o procesar registros históricos de forma asíncrona sin abrumar a la memoria. Casi nunca lo ves porque ORMs y bibliotecas lo hacen automáticamente detrás de escenas.