수백, 수천명의 많은 사용자(세션)가 한꺼번에 동시에 값을 저장할때, 현재 값보다 최대값만 저장하고 싶습니다.
먼저 생각한것이 단순히
INSERT INTO TABLE1
VALUES ...
WHERE 현재값 >
( SELECT 최대값 FROM TABLE1 .... )
구조인데요..
이것을 가지고 수백, 수천명이 동시에 같은 (혹은 현 최대값보다 큰 다른 값들) 값을 입력시도 한다면
과연 최대값만을 정상적으로 입력할수 있을까요?
아니면
SELECT FOR UPDATE.. 문을 써서 값에 해당하는 부분을 락을 걸어놓고 입력해야 할까요..
이러면 혹시 동시에 몰리시 시스템에 이상이 가거나 처리하지 못하는 현상이 발생하지는 않을까요?
조언 부탁드립니다. |