816건 넣으려고 16,268행을 잠갔다 — MySQL INSERT SELECT 락 실측
같은 테이블을 읽어서 넣는 INSERT ... SELECT는 REPEATABLE READ에서 읽은 범위 전체를 잠근다.실측해 보니 816건을 넣으려고 16,268행을 잠갔다. 테이블 전체 행 수보다 큰 값이고, 모든 행에 갭까지 잠갔다는 뜻이다.READ COMMITTED로 내리면 0이 된다. 다만 그게 안전한 전제가 하나 있다.무슨 작업이었나예약 슬롯 테이블에 21시 시간대를 추가해야 했다. 기존 행을 읽어서 시각만 바꿔 넣는, 같은 테이블 안에서의 INSERT ... SELECT다.INSERT INTO RESERVE_SLOT (office_code, slot_date, slot_time, ...)SELECT office_code, slot_date, '2100', ... FROM RESERVE_SLO..
2026. 9. 6.