Mysql
 sql >> Database >  >> RDS >> Mysql

Esiste un MySQL JDBC che rispetterà fetchSize?

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.