PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Diffuser des lignes à partir de PostgreSQL (avec la taille de récupération)

Pour le moment, en utilisant spring, toutes les données sont récupérées et le flux n'est appliqué qu'aux données déjà en mémoire.

Si vous regardez la source de org.springframework.data.jpa.provider.PersistenceProvider il semble qu'il utilise un ScrollableResults pour diffuser les données.

Généralement un ScrollableResults récupérer toutes les données en mémoire.

Vous pouvez trouver une analyse complète intéressante en utilisant une base de données MySql ici , mais probablement la même chose fonctionne pour une base de données Postgres.

De même, si vous pensez utiliser une solution qui n'a pas besoin d'utiliser beaucoup de mémoire en réalité, c'est parce que l'implémentation sous-jacente n'utilise pas une implémentation optimale.