Zakładam, że używasz oficjalnego sterownika JDBC dostarczonego przez MySQL Connector/J.
Wyraźnie mówisz JDBC (i MySQL), aby przesyłał strumieniowo wyniki wiersz po wierszu za pomocą statement.setFetchSize(Integer.MIN_VALUE);
Z Dokumenty MYSQL :
Dowolna wartość inna niż Integer.MIN_VALUE ponieważ rozmiar pobierania jest ignorowany przez MySQL i obowiązuje standardowe zachowanie. Cały zestaw wyników zostanie pobrany przez sterownik JDBC.
Albo nie używaj setFetchSize() , więc sterownik JDBC użyje wartości domyślnej (0 ) lub ustaw wartość na 0 wyraźnie. Korzystanie z wartości 0 zapewni również, że JDBC nie używa kursorów MySQL, co może wystąpić w zależności od wersji i konfiguracji MySQL i Connector/J.