반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- JPA
- Stream
- spring kakfa
- 중복컬럼dto매핑
- Java
- 쓰기지연sql저장소 쿼리실행순서
- Oracle
- 오라클쿼리테스트사이트
- 쿼리실행순서
- 쿼리실행사이트
- sql사이트
- port&adapter architecture
- error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2)
- group by group by rollup 차이
- Flush
- 쿼리사이트
- sql 테스트 사이트
- 자바
- 스트림
- 쿼리테스트사이트
- ls -lgaf
- 설치없이쿼리실행
- dto매핑우선순위
- 포트앤어댑터 아키텍처
- spring cloud stream
- Kafka
- 컬럼명중복
- IntelliJ
- 쓰기지연저장소
- hibernate 쿼리실행 순서
Archives
- Today
- Total
목록쓰기지연sql저장소 쿼리실행순서 (1)
개린이 탈출기
[JPA] 쓰기 지연 SQL 저장소 flush 시, 쿼리 실행 순서
JPA 를 활용하여 데이터를 관리하는 중인데 동일한 unique key 에 대한 delete 와 save 메서드를 사용하였더니 Duplicate Key 문제가 발생하였다. 결론적으로는 jpa를 통해 delete 관련 메서드를 호출해도 db에 동기화가 바로 일어나지 않고(직접 flush를 하거나 db 동기화가 일어나도록 하지 않는다면) 쓰기 지연 SQL 저장소에 쌓아두고 나중에 isnert 문과 함께 Db에 쿼리문을 보내준다. 이때 dbms 가 쿼리를 실행하기 전에 각 쿼리를 평가(최적화 및 실행 계획 등..)하는 과정에서 uniqueKey가 중복되는 insert문이 존재하므로 여기서 문제가 발생했던 것이다. 문제 원인실제 코드는 다음과 같다.public class MyEntity { @Id ..
Database ~ SQL
2024. 11. 20. 16:07