Ако активирате MySQL JDBC опция
useCursorFetch
, fetchSize наистина ще се спазва от драйвера.
Въпреки това, има един недостатък на този подход:той ще използва курсори от страна на сървъра, които в MySQL се реализират с помощта на временни таблици. Това ще означава, че резултатите няма да пристигнат, докато заявката не бъде завършена на сървъра и че допълнителната памет ще се използва от страна на сървъра.
Ако просто искате да използвате поточно предаване на резултати и не се интересувате от точния размер на извличане, режийните разходи за setFetchSize(Integer.MIN_VALUE)
не е толкова лошо, колкото може да предполагат документите. Той всъщност просто деактивира кеширането от страна на клиента на целия отговор и ви дава отговори, когато пристигнат; не се изисква двупосочно пътуване на ред.