Hvis du aktiverer MySQL JDBC-mulighed
useCursorFetch
, vil fetchSize faktisk blive respekteret af chaufføren.
Der er dog en ulempe ved denne tilgang:Den vil bruge server-side cursorer, som i MySQL er implementeret ved hjælp af midlertidige tabeller. Dette vil betyde, at resultaterne ikke kommer frem, før forespørgslen er afsluttet på serveren, og at yderligere hukommelse vil blive brugt på serversiden.
Hvis du bare vil bruge resultatstreaming og er ligeglad med den nøjagtige hentestørrelse, er overheaden for setFetchSize(Integer.MIN_VALUE)
er ikke så slemt, som dokumenterne kunne antyde. Det deaktiverer faktisk bare caching på klientsiden af hele svaret og giver dig svar, når de ankommer; der kræves ingen tur-retur pr. række.