이름을 가진 락을 획득한 후 해제될 때까지 다른 세션은 이 락을 획득할 수 없다.
// 락 획득
select get_lock(:key, 1000)
// 락 해제
select release_lock(:key)
트랜잭션이 종료될 때 락이 자동해제 되지 않기 때문에 별도로 락을 해제__해주거나 선점 시간이 끝나야 해제 됨
실제 사용 시 다른 데이터소스를 분리하여 사용해야 함
Connection Pool이 부족해져 다른 서비스에 영향을 끼칠 수 있음
주로 분산락을 구현할 때 사용 함
데이터 삽입 시 정합성을 맞춰야할 때 사용 함
다만 실제 구현 방식이 매우 복잡할 수 있음
트랜잭션 종료 시 락 해제와 세션 관리를 잘 해줘야함