MyISMA VS InnoDB
1. MyISMA
MyISMA 의 특징은 non-transactional-safe(트랜잭션 기능 제공 안 함)와 데이터 모델 디자인이 단순하다는 것이다.
장점
- 단순한 디자인으로 인해 따라서 Select 작업 속도가 빠르고 많은 읽기 작업에 적합하다.
- Full-text 인덱싱이 가능하여 검색하고 하는 내용에 대한 복합 검색도 가능하다.
- 테이블 단위로 물리 파일이 존재하여 백업 & 복구가 쉽다.
- .frm - 테이블 정의 파일
- .MYD - 테이블 데이터 파일
- .MYI - 테이블 인덱스 파일
단점
- Table-Level Lock 사용으로 쓰기 작업이 느리고 다음과 같은 문제가 있다.
- SELECT (진행 중), Update(대기 중) 일 경우에 해당 테이블에 대한 SELECT 작업도 함께 LOCK이 걸린다.
- 데이터 무결성이 보장되지 않는다.
- 트랜젝션 기능 제공 안 한다.
2. InnoDB
InnoDB는 트랜잭션 기능을 제공하고 Row-level locking, 외래 키 지원, 장애 복구 등의 다양한 기능을 지원한다.
장점
- Row-level Lock 사용으로 변경 작업이 빠르고 해당 ROW를 제외한 동시 처리가 가능하다.
- 데이터 무결성 보장한다.
- 제약조건, 외래 키 생성, 동시성 제어 등 가능하다.
단점
- Full-text 인덱싱 불가능하다.
- MyISAM에 비해 시스템 자원을 많이 사용한다.