안녕하세요! 이번 포스팅은 JPA를 사용할 때, n + 1 해결했던 경험을 공유하고자 합니다!저는 팀 프로젝트 상에서 Spring Boot 2.7.5, java 11 버전을 사용했습니다.그리고 QueryDsl을 사용하여 DB에 jpql 쿼리를 보냈습니다.1. 성능 테스트 설정성능 테스트 도구: nGrinderVUser : 100DB : cpu 2, Memory 2GBServer : cpu 2, Memory 4GBorder(1) → orderItem (10) → item(10)2. 문제 상황order를 단건 조회할 때, n + 1 문제가 발생했습니다. n + 1문제가 무엇인지는 따로 설명하지는 않겠습니다!JPA 사용 시 워낙 유명한 문제이기 때문에 검색을 통해 쉽게 확인할 수 있을 거에요! order 엔티..
대용량 데이터 삽입mysql 8.4.2 + Springboot를 이용해서 대용량 데이터 삽입을 한 내용에 대해 포스팅하려고 합니다.약 10만 명의 유저 mock 데이터를 생산하여 데이터베이스에 넣는 시간을 비교해 보겠습니다. 대략적인 개요는 아래와 같습니다.10만 명의 mock 유저 데이터를 만든다.jpa saveAll()을 사용해서 데이터베이스에 insert를 한다. (id 생성 전략 -> Table )jpa batch insert를 설정하고 insert 한다.jdbc batch insert를 설정하고 insert 한다멀티스레드를 활용하여 jdbc batch insert를 한다.설정 환경은 다음과 같습니다.mysql 8.42Springboot 2.7.5mac m1RAM 16gb intellj1. 10만..
- Total
- Today
- Yesterday
- virtual thread
- 프로그래머스
- spring.
- 싱글모듈
- TransactionalOutbox
- StringBuilder
- AttributeConverter
- 디자인패턴
- socket통신
- 백준
- java
- kafka
- leetcode
- http메서드
- 세션
- 정기결제
- LLM
- jpa
- SpringBatch
- rrf
- redisson
- 벌크헤드
- 네트워크
- 항해99
- 커넥션풀문제
- 알고리즘
- Http 버전
- 무상태성
- 외부API
- 분산락
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |