1.begin
2.update a table
3.요런 저런 처리
4.commit
2에서 업데이트를 하는데 그전히 필히 이 트랜잭션단위에서 a에 락을 걸어줘야 하고 작업의 성격상 select 까지 못하게 해야 합니다.
제가 궁금한건 a table 전체에 락을 걸어버리면 업데이트를 하지 않는 다른 row까지 불필요하게 select를 못하게 될것 같은데 업데이트 하는 row만 락을 걸수 없을까요?
row level락인지 뭔지 여기 저기서 많이 들어는 봤는데 lock table a where euid='$value'이렇게 거는건 아닐걸고 대충 ROW EXCLUSIVE MODE 요놈이 맞을거 같은데 어떻게 거는건지 ,실제 가능한건지도 잘모르겠습니다.
업데이트 하는 특정 row만 트랜잭션내에서 lock을 거는 방법이 있을까요?
부탁드립니다.
|