PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Stream di righe da PostgreSQL (con dimensione di recupero)

Al momento utilizzando Spring vengono recuperati tutti i dati e lo Stream viene applicato solo ai dati già in memoria.

Se guardi il sorgente di org.springframework.data.jpa.provider.PersistenceProvider sembra che utilizzi un ScrollableResults per eseguire lo streaming dei dati.

Generalmente un ScrollableResults recuperare tutti i dati in memoria.

Puoi trovare un'interessante analisi completa utilizzando un database MySql qui , ma probabilmente funziona lo stesso per un database Postgres.

Quindi, anche se pensi di utilizzare una soluzione che non ha bisogno di utilizzare molta memoria, in realtà lo fa perché l'implementazione sottostante non utilizza un'implementazione ottimale.