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
- Exception
- 김영한
- Thymeleaf
- http
- Proxy
- 백준
- pointcut
- 인프런
- Greedy
- 자바
- jpa
- transaction
- 스프링 핵심 원리
- java
- 스프링
- db
- AOP
- 그리디
- kotlin
- spring
- 알고리즘
- Servlet
- springdatajpa
- JDBC
- JPQL
- 스프링 핵심 기능
- Spring Boot
- QueryDSL
- SpringBoot
- Android
Archives
- Today
- Total
목록SELECT FOR UPDATE (1)
개발자되기 프로젝트
DB 락 - 조회
일반적인 조회는 락을 사용하지 않는다 데이터베이스마다 다르지만, 보통 데이터를 조회할 때는 락을 획득하지 않고 바로 데이터를 조회할 수 있다. 예를 들어서 세션1이 락을 획득하고 데이터를 변경하고 있어도, 세션2에서 데이터를 조회는 할 수 있다. 물론 세션2에서 조회가 아니라 데이터를 변경하려면 락이 필요하기 때문에 락이 돌아올 때 까지 대기해야 한다. 조회와 락 데이터를 조회할 때도 락을 획득하고 싶을 때가 있다. 이럴 때는 select for update 구문을 사용하면 된다. 이렇게 하면 세션1이 조회 시점에 락을 가져가버리기 때문에 다른 세션에서 해당 데이터를 변경할 수 없다. 물론 이 경우도 트랜잭션을 커밋하면 락을 반납한다. 조회 시점에 락이 필요한 경우는 언제일까? 트랜잭션 종료 시점까지 해..
인프런/[인프런] 스프링 DB 1편 - 데이터 접근 핵심 원리
2022. 6. 7. 21:59