MyISAM 은 비트랜잭션 스토리지 유형이며 모든 쓰기 옵션은 수동으로 롤백해야 합니다(필요한 경우).
InnoDB 는 쓰기가 완료되지 않으면 자동으로 롤백하는 트랜잭션 스토리지 유형입니다.
MyISAM 대 InnoDBStorage: 잠금
잠금은 행을 잠가 두 사용자가 동시에 중복 행을 수정하는 것을 방지하는 MySQL의 메커니즘입니다. 잠금이 활성화된 경우 사용자는 테이블을 변경할 수 없습니다.
MyISAM 은 테이블 잠금의 기본 방법을 사용하고 단일 세션에서 테이블을 수정할 수 있도록 합니다. 이것은 한 번에 한 명의 사용자만 테이블을 변경할 수 있음을 의미합니다. 다른 사용자가 테이블을 변경하려고 하면 테이블이 잠겨 있다는 메시지가 표시됩니다. 테이블 잠금 방법은 많은 메모리가 필요하지 않으므로 읽기 전용 데이터베이스에 유용합니다.
InnoDB 는 테이블의 행 수준 잠금을 사용합니다. 이 방법은 수정 프로세스에서 행만 잠그는 방식으로 동일한 행에서 여러 세션을 지원합니다. 행 잠금은 여러 사용자가 있는 데이터베이스에 유용합니다.
행 수준 잠금의 유일한 단점은 많은 메모리를 소비하고 데이터를 쿼리하고 수정하는 데 시간이 걸린다는 것입니다.
MyISAM 대 InnoDBStorage: 외래 키
외래 키는 데이터를 다른 테이블에 연결하는 한 테이블의 열입니다. 사용자가 두 테이블 간의 링크를 파괴하는 레코드를 추가하는 것을 방지합니다.
MyISAM 은 외래 키 옵션을 지원하지 않습니다.
InnoDB 는 외래 키 옵션을 지원합니다.
MyISAM 대 InnoDBStorage: ACID 속성
ACID는 원자성(Atomicity), 일관성(Consistency), 격리(Isolation) 및 내구성(Durability)을 나타냅니다.
MyISAM은 ACID 속성을 지원하지 않는 반면 InnoDB는 ACID 속성을 지원합니다.
MyISAM 대 InnoDBStorage: 성능
InnoDB 는 트랜잭션 속성, 즉 롤백 및 커밋을 지원하며 쓰기 속도가 더 빠릅니다. 대용량 데이터에 대한 InnoDB의 성능은 MyISAM에 비해 우수합니다.
MyISAM 은 트랜잭션 속성을 지원하지 않으며 읽기가 더 빠릅니다. InnoDB에 비해 대용량 데이터에 대한 성능이 떨어집니다.
MyISAM 대 InnoDBStorage: 안정성
InnoDB 는 트랜잭션 로그를 사용하여 모든 작업을 기록하므로 안정적인 작업을 제공합니다. 따라서 장애 발생 시 해당 로그를 사용하여 데이터를 빠르게 복구할 수 있습니다.
MyISAM 은 데이터 무결성을 제공하지 않습니다. 하드웨어 오류 및 취소된 작업으로 인해 데이터가 손상될 수 있습니다.
MyISAM 대 InnoDBStorage: 캐싱 및 인덱싱
InnoDB 는 데이터와 인덱스를 모두 캐시하는 대규모 버퍼 풀을 지원합니다. 그러나 전체 텍스트 검색은 지원되지 않습니다.
주제
MyISAM vs InnoDB 의 싸움에서 최근 승자가 InnoDB가 되었다.
선정 이유
현재 미션에서도 InnoDB를 사용했고, MySQL 8.0 기본엔진이 InnoDB로 완전히 바뀌었다는 얘기를 들어서 이유가 궁금했다.
해당 텍스트
관련 아티클, 페이지
페이지
94p, 141p
아티클
아티클 링크
MyISAM 대 InnoDBStorage: 엔진 유형
MyISAM 대 InnoDBStorage: 잠금
MyISAM 대 InnoDBStorage: 외래 키
MyISAM 대 InnoDBStorage: ACID 속성
MyISAM 대 InnoDBStorage: 성능
MyISAM 대 InnoDBStorage: 안정성
MyISAM 대 InnoDBStorage: 캐싱 및 인덱싱