트랜잭션 2

내맘대로 정리하는 Real MySQL #4장) 트랜잭션과 잠금 - 잠금 편

시리즈는, 책을 읽으며 몰랐던 내용을 위주로 정리한 내용 그대로 포스팅하는 시리즈입니다 ^^ 원문의 문맥이 궁금하면 (좋은 책이니) 이 참에 하나 장만하는 것은 어떤가요?? 잠금 동시성을 제어하기 위한 기능 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 순서대로 한 시점에는 하나의 커넥션만 변경할 수 있게 해주는 역할을 수행 MySQL 엔진 레벨 잠금과 스토리지 엔진 레벨 잠금 두 가지 종류가 있다. MySQL 엔진의 잠금 글로벌 락 FLUSH TABLES WITH RAED LOCK 명령으로만 획득할 수 있으며, 한 세션에서 글로벌 락을 획득하면 MySQL 서버 전체에 락이 걸린다. 다른 세션은 SELECT을 제외한 대부분의 DDL 문장이나 DML 문장 실행을 대기하게 된다. 테이블 락 개별 테이블 ..

내맘대로 정리하는 Real MySQL #4장) 트랜잭션과 잠금 - 트랜잭션 편

시리즈는, 책을 읽으며 몰랐던 내용을 위주로 정리한 내용 그대로 포스팅하는 시리즈입니다 ^^ 원문의 문맥이 궁금하면 (좋은 책이니) 이 참에 하나 장만하는 것은 어떤가요?? 트랜잭션이란 작업의 완전성을 보장해주는 것 논리적인 작업 모음을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능이다 MEMORY 스토리지 엔진 혹은 MyISAM 스토리지 엔진은 트랜잭션 기능이 없다. 트랜잭션 기능이 없다면 애플리케이션에서 일부의 쿼리만 실행된것에 대한 후처리를 정말 끔찍하게 해야하지만 트랜잭션을 활용하면 try - catch 로 깔끔하게 처리된다. try { START TRANSACTION; INSERT INTO tab_a ...; I..