MySQL を使用した大規模な結果セットのストリーミング
Spring アプリケーション内で大規模な MySQL テーブルを処理する場合、ドライバーが次の処理を行うときに OutOfMemoryException が発生する可能性があります。テーブル全体をメモリにロードします。設定ステートメント.setFetchSize(Integer.MIN_VALUE);これは単に JDBC ドライバーにヒントを提供するだけなので、十分ではない場合があります。
MySQL JDBC ドライバーで結果セットのストリーミングを有効にするには、より包括的なアプローチが必要です。
ステートメントを作成するインスタンス:
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
フェッチサイズの設定:
stmt.setFetchSize(Integer.MIN_VALUE);
注意事項:
このメソッドには特定の注意事項:
追加の洞察:
大規模な結果セットの処理に関するさらなる戦略については、次の関連する質問とその回答を検討してください。 [同様の質問へのリンク].
以上がOutOfMemoryError を回避するために Spring で大規模な MySQL 結果セットをストリーミングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。