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

Streaming MySql ResultSet avec un nombre fixe de résultats à la fois

Je suppose que vous utilisez le pilote JDBC Connector/J fourni par MySQL.

Vous dites explicitement à JDBC (et à MySQL) de diffuser les résultats ligne par ligne avec statement.setFetchSize(Integer.MIN_VALUE);

À partir de documents MYSQL :

Toute valeur autre que Integer.MIN_VALUE car la taille de récupération est ignorée par MySQL et le comportement standard s'applique. L'ensemble des résultats sera récupéré par le pilote JDBC.

N'utilisez pas setFetchSize() , ainsi le pilote JDBC utilisera la valeur par défaut (0 ), ou définissez la valeur sur 0 explicitement. Utilisation de la valeur de 0 veillera également à ce que JDBC n'utilise pas les curseurs MySQL, ce qui peut se produire en fonction de vos versions et de votre configuration MySQL et Connector/J.