썸네일 MySQL 엔진 잠금과 InnoDB 스토리지 엔진 잠금 📌 Transaction 과 Lock 트랜잭션은 데이터의 정합성을 보장하기 위한 기능이고, 락은 동시성을 제어하기 위한 기능이다. 트랜잭션은 작업의 ACID (원자성, 일관성, 지속성, 격리성) 를 보장한다. 트랜잭션 지원 여부는 MySQL InnoDB와 MyISAM의 가장 큰 차이 중 하나다. 락은 여러 커넥션에서 동시에 동일한 자원을 요청할 경우 한 시점에 하나의 커넥션에서만 변경할 수 있게 해준다. 2022.12.13 - [DB] - [MySQL] MyISAM vs InnoDB [MySQL] MyISAM vs InnoDB MyISAM MySQL 5.5 이전의 기본 스토리지 엔진이다. InnoDB MySQL 5.5 부터 기본 스토리지 엔진으로 InnoDB로 기본 엔진이 변경 차이점 1. Engine ..
트랜잭션 특징과 격리 수준 (Isolation Level) 트랜잭션 특징 트랜잭션은 원자성, 일관성, 지속성, 격리성을 보장한다. 원자성(Atomicity) 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 또는 실패해야 한다 일관성(Consistency) 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야 한다 트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는것이 아니라, 처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다. 지속성(Durability) 트랜잭션이 성공적으로 끝나면 그 결과가 영구적으로 반영되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구할 수 있어야 한다. 격리성(Isolation) 동시에 실행되는 ..
썸네일 [MySQL] 타입 비교 1 - Timestamp 와 Datetime 1. DB 타임존 의존 여부 MySQL converts TIMESTAMP values from the current time zone to UTC for storage, and back from UTC to the current time zone for retrieval. (This does not occur for other types such as DATETIME.) By default, the current time zone for each connection is the server's time. TIMESTAMP 타입의 값은 현재 타임존 시각 -> UTC 시각으로 변환되어 저장되고, 검색 시에는 다시 현재 타임존 시각으로 변환되지만, DATETIME은 그렇지 않다. DATETIME을 사용하면 한..
썸네일 [MySQL] MyISAM vs InnoDB MyISAM MySQL 5.5 이전의 기본 스토리지 엔진이다. InnoDB MySQL 5.5 부터 기본 스토리지 엔진으로 InnoDB로 기본 엔진이 변경 차이점 1. Engine Type MyISAM은 non-transactional 스토리지 타입이며 롤백이 필요한 경우 수동으로 처리해야 한다. InnoDB는 Transactional 스토리지 타입으로 롤백이 필요한 경우 자동으로 처리된다. 차이점 2. Locking MyISAM은 기본적인 Table locking method를 사용 하나의 사용자만 테이블을 변경할 수 있으며. 만약 다른 사용자가 테이블을 바꾸려 시도한다면, 테이블이 잠겼다는 응답을 받게 된다. Table locking method는 많은 메모리를 요구하지 않기 때문에 읽기 전용 데이터베..