멀티스레드 환경에서 다음 update 문이 동시다발적으로 많이 실행될 경우 문제가 없나요?
(cnt 증가값은 랜덤 입니다.)
문제가 된다면 어떤식으로 처리를 해야 할까요?
update tbl set cnt = cnt + 100 where id = 1;
멀티스레드 환경에서 다음 update 문이 동시다발적으로 많이 실행될 경우 문제가 없나요?
(cnt 증가값은 랜덤 입니다.)
문제가 된다면 어떤식으로 처리를 해야 할까요?
update tbl set cnt = cnt + 100 where id = 1;
답변 감사합니다.
제가 궁금했던 부분은 성능 문제보다 cnt 필드의 증가가 제대로 되는지 였습니다.
가령 update 문이 동시에 여러번 실행이 되었을 경우
하나의 update 문이 commit 되기 전에 다른 update 문이 실행되어 버리면
cnt 값이 올바르게 증가되지 않을 것 같아서요...
이런 부분에 대한 문제가 없을지 궁금했습니다.
update 수행 중인 데이터가 commit 되기전에 다른 트랜잭션에서 변경할 수 없습니다.
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
where 조건절에 사용되는 컬럼이 인덱스가 걸려 있어야하고, 이를 통한 인덱스 스캔이 수행되는 지 확인이 필요합니다.
인덱스 스캔이 이뤄지지 않는 경우 테이블 전체에 대해 락이 잡혀 동시성이 떨어집니다.