inflearn logo
강의

講義

知識共有

Java ORM標準JPAプログラミング - 基本編

永続化コンテキスト 2

em.persist에서 쓰기 지연 SQL 저장소의 성능에 관한 질문이 있습니다.

417

JIN

投稿した質問数 1

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예

[질문 내용]
영속성 컨텍스트 2 강의에 12분쯤 나오는 그림을 보면서 든 생각입니다.

예를 들어 회원 가입이나 게시글 및 댓글 올리기 같은 경우에는 insert가 하나씩 들어갈 것 같아 1차 캐시나 쓰기 지연 SQL 저장소에 차곡차곡 쌓이는 일이 없을 것 같은데요. 만약 한 트랜잭션 안에서 대량의 데이터를 select 해서 insert 하는 경우, 그런 데이터의 양이 1만건, 10만건을 넘어간다고 하면 1차 캐시 및 쓰기 지연 SQL 저장소에 10만건을 쌓아놓고 커밋할 때 DB에 차례대로 한 줄 씩 저장이 될 것 같습니다. 그럴 때 메모리가 터진다거나, 속도가 느려진다거나 과부하가 걸려 성능 제한이 걸리는 경우가 있을 것 같은데 이런 경우를 대비해서 따로 처리해야 하는 로직이나 개념이 있다면 알고 싶습니다!

java JPA

回答 3

0

yh

안녕하세요. JIN님

JPA 책 15.4.3 배치 처리를 참고해보시면 도움이 되실거에요^^

감사합니다.

0

JIN

구글링을 하다 보니 강의 뒷부분에 배치 처리하는 부분이 나오는군요..!! 강의 완주하고 다시 질문하러 오겠습니다

0

JIN

예를 들어 100만건이 들어있는 데이터를 limit을 두지 않고 List<Table> result = em.createQuery("select t from table t", Table.class).getResultList();

이런 식으로 사용하는 건 JPA라도 성능에 많이 좋지 않을 것으로 예상됩니다. 만약 전체 데이터가 꼭 필요한 경우라면? limit 을 두고 분산 처리를 무조건 하는 건지... 보통의 경우 실무에서는 어떤 식으로 해결하는지도 궁금합니다!!

실무 조언 관련 질문입니다.

0

39

1

H2데이터베이스 파일 생성

0

48

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

49

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

46

1

JPQL 메소드와 락

0

48

1

Delivery @OneToOne

0

55

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

85

2

UnsupportedOperationException 발생

0

80

3

H2 Database 연결이 안됩니다.

0

87

2

연관관계 매핑 질문드립니다.

0

78

2

h2데이터베이스 실행오류

0

103

2

persistence.xml

0

101

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

76

1

영속성 컨텍스트

0

61

1

JPA 프록시

0

87

1

Native Query와 MyBatis

0

62

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

81

1

임베디드 타입 예시 코드 관련 질문

0

110

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

89

3

인텔리제이 패키지 커서 단축키 질문

0

103

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

134

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

67

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

172

2