Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es ein MySQL-JDBC, das fetchSize respektiert?

Wenn Sie den MySQL JDBC-Option useCursorFetch , fetchSize wird tatsächlich vom Treiber respektiert.

Dieser Ansatz hat jedoch einen Nachteil:Er verwendet serverseitige Cursor, die in MySQL mithilfe von temporären Tabellen implementiert werden. Dies bedeutet, dass die Ergebnisse erst eintreffen, wenn die Abfrage auf dem Server abgeschlossen ist, und dass zusätzlicher Speicher serverseitig verwendet wird.

Wenn Sie nur Ergebnisstreaming verwenden möchten und sich nicht um die genaue Abrufgröße kümmern, wird der Overhead von setFetchSize(Integer.MIN_VALUE) ist nicht so schlimm, wie die Dokumente vermuten lassen. Es deaktiviert tatsächlich nur das clientseitige Caching der gesamten Antwort und gibt Ihnen Antworten, sobald sie eintreffen. es ist kein Hin- und Rückweg pro Zeile erforderlich.