Als u de MySQL inschakelt JDBC-optie
useCursorFetch
, fetchSize wordt inderdaad gerespecteerd door de bestuurder.
Er is echter één nadeel aan deze benadering:er worden cursors aan de serverzijde gebruikt, die in MySQL worden geïmplementeerd met behulp van tijdelijke tabellen. Dit betekent dat de resultaten pas binnenkomen als de query op de server is voltooid en dat extra geheugen aan de serverzijde wordt gebruikt.
Als u alleen resultaatstreaming wilt gebruiken en niet geïnteresseerd bent in de exacte ophaalgrootte, kan de overhead van setFetchSize(Integer.MIN_VALUE)
is niet zo erg als de documenten suggereren. Het schakelt de cache aan de clientzijde van het volledige antwoord gewoon uit en geeft u antwoorden zodra ze binnenkomen; er is geen heen- en terugreis per rij vereist.