Presumo che tu stia utilizzando il driver JDBC ufficiale fornito da MySQL Connector/J.
Stai dicendo esplicitamente a JDBC (e MySQL) di trasmettere i risultati riga per riga con statement.setFetchSize(Integer.MIN_VALUE);
Da Documenti MYSQL :
Qualsiasi valore diverso da Integer.MIN_VALUE
poiché la dimensione del recupero viene ignorata da MySQL e si applica il comportamento standard. L'intero set di risultati verrà recuperato dal driver JDBC.
O non usare setFetchSize()
, quindi il driver JDBC utilizzerà il valore predefinito (0
), oppure imposta il valore su 0
esplicitamente. Usando il valore di 0
assicurerà inoltre che JDBC non utilizzi i cursori MySQL, il che potrebbe verificarsi a seconda delle versioni e della configurazione di MySQL e Connector/J.