Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Streaming von MySql ResultSet mit einer festen Anzahl von Ergebnissen gleichzeitig

Ich gehe davon aus, dass Sie den offiziellen von MySQL bereitgestellten JDBC-Treiber Connector/J.

verwenden

Sie weisen JDBC (und MySQL) ausdrücklich an, die Ergebnisse Zeile für Zeile mit statement.setFetchSize(Integer.MIN_VALUE); zu streamen

Aus MYSQL-Dokumentation :

Jeder andere Wert als Integer.MIN_VALUE für die Abrufgröße wird von MySQL ignoriert, und es gilt das Standardverhalten. Die gesamte Ergebnismenge wird vom JDBC-Treiber abgerufen.

Verwenden Sie entweder setFetchSize() nicht , sodass der JDBC-Treiber den Standardwert verwendet (0 ) oder setzen Sie den Wert auf 0 ausdrücklich. Verwenden Sie den Wert von 0 wird auch sicherstellen, dass JDBC keine MySQL-Cursor verwendet, was je nach Ihrer MySQL- und Connector/J-Version und -Konfiguration auftreten kann.