Se abiliti MySQL Opzione JDBC
useCursorFetch
, fetchSize sarà effettivamente rispettato dal conducente.
Tuttavia, c'è uno svantaggio in questo approccio:utilizzerà cursori lato server, che in MySQL vengono implementati utilizzando tabelle temporanee. Ciò significa che i risultati non arriveranno fino al completamento della query sul server e che verrà utilizzata memoria aggiuntiva lato server.
Se desideri semplicemente utilizzare lo streaming dei risultati e non ti interessa la dimensione esatta del recupero, il sovraccarico di setFetchSize(Integer.MIN_VALUE)
non è così male come potrebbero implicare i documenti. In realtà disabilita semplicemente la memorizzazione nella cache lato client dell'intera risposta e ti dà le risposte non appena arrivano; non è richiesto il viaggio di andata e ritorno per riga.