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.