Předpokládám, že používáte oficiální ovladač JDBC Connector/J, který poskytuje MySQL.
Explicitně říkáte JDBC (a MySQL), aby streamovaly výsledky řádek po řádku pomocí statement.setFetchSize(Integer.MIN_VALUE);
Z Dokumenty MYSQL :
Jakákoli hodnota jiná než Integer.MIN_VALUE
protože velikost načtení je MySQL ignorována a platí standardní chování. Ovladač JDBC načte celou sadu výsledků.
Buď nepoužívejte setFetchSize()
, takže ovladač JDBC použije výchozí hodnotu (0
), nebo nastavte hodnotu na 0
výslovně. Pomocí hodnoty 0
také zajistí, že JDBC nebude používat kurzory MySQL, k čemuž může dojít v závislosti na verzi a konfiguraci MySQL a Connector/J.