본문 바로가기
반응형

JPA2

[JPA] 트랜잭션을 지원하는 쓰기 지연은 락을 몇 초 잡을까? JPA는 엔티티 매니저가 트랜잭션을 지원하는 쓰기 지연을 통해 트랜잭션이 종료될 때 플러시하고 커밋할 때 모든 쿼리를 데이터베이스에 전송하여 각 로우 데이터의 락을 최소한으로 잡는다고 합니다. 그래서 아래의 경우들이 락을 얼마나 잡는지 궁금했습니다.MyBatis를 통해 트랜잭션을 실행하는 경우JPA로 트랜잭션을 실행하는 경우 우선 알아야 할 것은 락의 유지시간을 확인하는 방법입니다. MySQL을 사용한다면 performance_schema 데이터베이스를 통해서 확인할 수 있으며, 아래는 절차입니다. my.ini 또는 my.cnf에 아래 내용을 추가합니다.[mysqld]performance_schema=ONperformance_schema.setup_instruments 테이블을 수정합니다.트랜잭션 테이블.. 2024. 7. 14.
JPA N+1 문제 N + 1 문제는 처음 실행한 SQL의 결과 수만큼 추가로 SQL을 실행하는 것입니다. 조회 시점에 차이가 있을 뿐 지연로딩과 즉시로딩 모두 발생할 수 있습니다. 코드를 통해 확인을 해보겠습니다. 데이터베이스 스키마 CREATE TABLE User ( id BIGINT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL ); CREATE TABLE Order ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES User(id) ); JPA Entity 클.. 2023. 11. 17.
반응형