Jika Anda mengaktifkan MySQL Opsi JDBC
useCursorFetch
, fetchSize memang akan dihormati oleh driver.
Namun, ada satu kelemahan dari pendekatan ini:Ini akan menggunakan kursor sisi server, yang di MySQL diimplementasikan menggunakan tabel sementara. Ini berarti bahwa hasil tidak akan tiba sampai kueri diselesaikan di server, dan memori tambahan akan digunakan di sisi server.
Jika Anda hanya ingin menggunakan streaming hasil dan tidak peduli dengan ukuran pengambilan yang tepat, overhead setFetchSize(Integer.MIN_VALUE)
tidak seburuk yang mungkin disiratkan oleh dokumen. Ini sebenarnya hanya menonaktifkan caching sisi klien dari seluruh respons dan memberi Anda respons saat mereka tiba; tidak perlu bolak-balik per baris.