Mysql
 sql >> Database >  >> RDS >> Mysql

Streaming MySql ResultSet con un numero fisso di risultati alla volta

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.