스터디/데이터베이스

[이론] 트랜잭션 격리 수준 ( Transaction Isolation Level )

트랜잭션 격리 수준 (Isolation Level) 트랜잭션은 ACID 속성을 보장해야합니다. 그 중 I 에 해당하는 Isolation은 트랜잭션의 고립성을 의미하고, 고립성은 서로 다른 트랜잭션은 서로 영향을 미치지 말아야 함을 의미합니다. 하지만 이 고립성은 동시성과 충돌할 수 밖에 없는 속성입니다. 고립성 수준, 다시말해 격리 수준이 올라감에 따라 동시성이 떨어지는 문제가 발생하게 됩니다. 그렇다고 고립성 수준을 낮추게 된다면 ACID의 C, Consistency인 일관성, 즉 데이터의 무결성 문제가 발생할 수 있습니다. 따라서 서비스를 운영할 때 서비스의 성격에 알맞는 격리 수준을 선택해야 할 필요가 있습니다. 서비스와 1:1로 대응해가며 설명을 하면 좋겠지만,,, 그 정도의 경험이 있지도 않거니..

2019.10.02 게시됨

스터디/데이터베이스

[이론] InnoDB와 MyISAM의 차이점

InnoDB? MyISAM? 데이터베이스 엔진이라 함은 CRUD작업을 도와주는 친구들인데항상 MySQL을 다룰때 엔진 설정은 디폴트로 InnoDB가 되어있다.사실 이유가 별로 궁금하지 않았다...그런데 알아야된다는 말을 듣기도 했고, 생각해 보니 내가 쓰는게 뭔지는 알아야 하지 않겠나 싶어 찾아보았다. MyISAM??MyISAM은 MySQL 관계형 데이터베이스 관리시스템 5.5 버전 이전의 기본 스토리지 엔진이다. 이것은 옛 ISAM 코드를 기반으로 했지만, 더 많은 유용한 확장성 가지고 있었다. MyISAM의 가장 부족한 점은 트랜잭션의 지원 부재였다. MySQL 5.5과 이후 판은 참조 무결성 제한과 더 높은 동시성을 보장하기 위해 InnoDB 엔진으로 전환되었다.위키 백과진짜 뭔지도 모르고 엔진 선..

2019.03.29 게시됨