transaction3 [Mysql] Select하는데 Lock이 걸린다고? 대체적으로 RDBMS를 사용하다보면 Dead Lock에 빠지는 경우가 종종 있습니다.해당 경우는 우리가 로직이 복잡해지고 다방면에서 들어오는 요청들이 한개의 Table이나 row에 대한 데이터 처리시에 사용한다고 하네요. 먼저 ACID와 MVCC 개념에 대해서 먼저 읽어 보시는걸 추천 드립니다. - https://paciencia.tistory.com/89 서버에서 보통 사용하는 InnoDB 기준으로 Lock이 걸리는 범위에 따라 지칭하는 명칭을 정리했습니다.Row 단위 LockShared Lock (s) : 읽는 요청시 해당 row의 수정을 막는 lockExclusive Lock (X) : 수정 요청시 해당 row의 수정을 막는 lock테이블 단위 LockIntent Lock: 설명: 의도 잠금은 트랜.. 2024. 11. 20. [개념 정리] Transaction에서 ACID와 MVCC란? Transaction이란?데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다.출처. https://ko.wikipedia.org/wiki/데이터베이스_트랜잭션 풀어서 이야기 하자면 시스템과 시스템의 통신간에 발생하는 전달방식이며 해당 통신으로 전달되는 데이터는 0 혹은 1즉, 실패해서 데이터를 전송하지 못하거나 성공해서 데이터를 전송한다는 것을 의미 합니다. 이러한 통신을 Transaction이라고 칭하며 개발에서 Transaction이라는 용어는 Database와 서버간의 통신을 할 때에 가장 많이 사용하고 예제로도 많이 사용됩니다. 예시로 Database에 조회와 동.. 2024. 11. 20. [Spring][JPA] JPA란? Persistence Layer - 영속성 계층 Spring 에서 DAO 객체를 사용하여 Database와 커넥션 등을 유지하는 것을 이야기 합니다. Mybatis와 JPA에서의 가장 큰 차이점을 따지고 본다면 DAO interface를 만들지 않고 JpaRepository 를 상속 받아 사용하게 됩니다. 이렇게 되면 가장 큰 이점으로 xml등의 파일을 따로 관리 하지 않고 Repository 내에서 Query를 조합하여 좀 더 직관적이고 객체 관점의 쿼리등이 가능해 집니다. Query 방법 예약되어 있는 query를 메서드 형태로 바로 불러와 사용도 가능하고 @Query annotation을 사용하여 native query 혹은 DTO 객체를 만들수도 있습니다. // 1. 예약 Query findAll.. 2022. 9. 14. 이전 1 다음