본문 바로가기

💻 개발/MySQL

(2)
MySQL의 격리수준 트랜잭션 격리 수준이란? 트랜잭션의 격리 수준(Isolation level)이란 DB에 동시에 여러개의 트랜잭션이 처리될 때 특정 트랜잭션에서 변경 또는 조회하고 있는 데이터를 다른 트랜잭션이 어느 정도까지 조회할 수 있는지를 결정하는 것을 말한다. 말 그대로 서로 다른 트랜잭션들이 서로 어느 정도까지 격리가 되어야 하는지를 나타낸 것이다. 격리 수준은 크게 아래의 4가지로 나뉜다. Read Uncoommitted Read Committed Repeatable Read Serializable 위에서 아래로 갈 수록 트랜잭션간 격리 수준이 높아지며, 일반적으로 격리 수준이 높아질수록 동시성은 떨어지게 된다. Read Uncommitted 격리 수준이 Read Uncommitted 일 때는 각 트랜잭션서의 ..
MySQL에서의 트랜잭션 MySQL에서의 트랜잭션 MyISAM은 트랜잭션을 지원하지 않음 InnoDB는 트랜잭션을 지원함 InnoDB 엔진은 쿼리 중 일부라도 오류가 발생하면 전체를 원상태로 만들어 두는 트랜잭션의 원칙을 따른다. MyISAM은 일부 오류가 발생하는 경우 부분 업데이트(Partial Update) 현상이 발생한다. 부분 업데이트 현상은 데이터의 정합성을 맞추는 작업을 어렵게 만든다. 트랜잭션이란 애플리케이션 개발에서 고민해야할 문제를 줄여 주는 아주 필수적인 DBMS의 기능이다. 트랜잭션 구현시 주의사항 트랜잭션은 DBMS 커넥션과 마찬가지로 꼭 필요한 최소의 코드에만 적용해야 한다. (프로그램 코드에서 트랜잭션의 범위를 최소화) 외부 네트워크 작업(메일, 큐 발송 등)은 반드시 트랜잭션에서 배제해야 한다. (롱..