MySQL에서의 Lock
데이터 베이스 접근 경쟁 제어를 위해 Lock을 사용한다. MySQL은 크게 Table Lock, Global Lock, Name Lock, User Lock이 존재한다.
Table Lock
어떤 세션이 테이블 자원에 엑세스해 데이터를 사용할때 다른 세션에서 테이블 자원에 대한 엑세스를 제한하는 락이다. 락을 걸면 락을 해지하기 전까지 세션은 접근을 못한다. 락을 사용하기 위해서는 테이블 락 권한이 필요하다.
Global Lock
Global Read Lock, 현재 세션에서 Global Read Lock을 사용할때 Flush table 이용
Name Lock
User Lock
사용자 레벨에서 락을 걸수 있는 방법, GET_LOCK, RELEASE_LOCK