MySQLを有効にした場合JDBCオプション
useCursorFetch
、fetchSizeは実際にドライバーによって尊重されます。
ただし、このアプローチには1つの欠点があります。それは、サーバー側カーソルを使用することです。これは、MySQLでは一時テーブルを使用して実装されます。これは、サーバーでクエリが完了するまで結果が届かないこと、および追加のメモリがサーバー側で使用されることを意味します。
結果ストリーミングを使用するだけで、正確なフェッチサイズを気にしない場合は、setFetchSize(Integer.MIN_VALUE)
のオーバーヘッド ドキュメントが示唆するほど悪くはありません。実際には、応答全体のクライアント側のキャッシュを無効にし、到着時に応答を提供します。行ごとの往復は必要ありません。