
이번에 꽤 흥미로운 이슈를 하나 겪었다. 동일한 쿼리, 동일한 파라미터로 MyBatis 쿼리를 두 번 실행했는데, 첫 번째 쿼리의 결과와 두 번째 쿼리의 결과가 달랐다. (p6spy를 통해 확인했을 때 두 번째 쿼리는 로그조차 안 찍힘)결론부터 얘기하자면, MyBatis의 1차 캐시 때문에 발생한 문제였다.트랜잭션과 1차 캐시트랜잭션 내에서 1차 캐시가 동작한다는 점을 이해하는 것이 중요하다. MyBatis에서 1차 캐시는 SqlSession 단위로 관리되며, 하나의 트랜잭션 내에서 같은 SqlSession을 사용하기 때문에 트랜잭션 동안 캐시된 데이터는 계속 유지된다. 이 말은 트랜잭션 내에서 같은 쿼리와 파라미터로 데이터 조회 시, 쿼리가 실행되지 않고 1차 캐시에서 결과를 가져온다는 의미다.따라서 ..
ㄴspring boot
2025. 4. 13. 17:12
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- cleanup policies
- s3
- 주키퍼 없는 카프카
- 제우스8
- volatile
- php
- 넥서스 보관주기
- 제우스 로그
- 제우스8.5
- 쓰레드 변수
- 스레드 동기화
- 도커
- 오블완
- multiple datasource
- API Gateway
- 넥서스 파일 보관주기
- SynchronousQueue
- docker
- cleanup policy
- 네트워크
- spring boot
- 보관주기
- 캐시
- 다중 데이터소스
- jpa 1차 캐시
- 카프카
- myabatis
- 1차캐시
- AWS
- db 두개
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함