📚FOS Study
홈카테고리
홈카테고리
📚FOS Study

개발 학습 기록을 정리하는 블로그입니다.

바로가기

  • 홈
  • 카테고리

소셜

  • GitHub
  • Source Repository

© 2025 FOS Study. Built with Next.js & Tailwind CSS

목록으로 돌아가기
☕java/ spring-framework

mysql-jdbc-cursor

약 1분
GitHub에서 보기

MySQL과 JDBC Cursor 방식

  • MySQL JDBC 드라이버에는 특유의 독특한 동작 방식이 있어 주의해야 한다.

MySQL JDBC의 기본 동작 (Fetch All)

  • 보통의 설정에서 executeQuery()를 날리면, 드라이버는 DB로부터 결과 셋 전체를 애플리케이션 메모리로 전부 가져온다.
  • 그리고 next()를 호출할 때마다 메모리에 있는 데이터를 하나씩 넘겨준다.
    • 장점 : 네트워크 통신 횟수가 줄어들어 속도가 빠름
    • 단점 : 데이터가 1,000만 건이면 서버 메모리가 터짐

Cursor 기반의 Streaming 동작 (진정한 한 건씩 가져오기)

  • 위와 같이 동작하게 하려면 MySQL 드라이버에게 스트리밍 모드로 동작하라고 명시적으로 알려줘야 함
  • JDBC 연결 URL에 옵션을 준다
    • URL : `jdbc:mysql://localhost:3306/database?useCursorFetch=true
java 카테고리의 다른 글 보기수정 제안하기
목차
  • MySQL JDBC의 기본 동작 (Fetch All)
  • Cursor 기반의 Streaming 동작 (진정한 한 건씩 가져오기)