MyISAM
- 비트랜잭션 스토리지 유형
- 쿼리문을 실행하다가 오류가 발생할 경우 이전의 실행들이 모두 적용된다
- 테이블 잠금
- 사용자가 한 테이블에 접근하면 다른 사용자는 접근할 수 없다
- 많은 메모리를 필요로하지 않으므로 읽기 전용 데이터에 적합하다
- 외래키 옵션 미지원
- ACID 미지원
- 읽기 속도가 빠르나 InnoDB 에 비해 대용량 데이터 성능이 낮다
- 데이터 무결성이 존재하지 않아 데이터가 손상될 수 있다
- 인덱스 전용 버퍼를 지원한다
- 전체 텍스트 검색을 지원한다
InnoDB
- 트랜잭션 스토리지 유형
- 쓰기가 완료되지 않으면 자동으로 롤백
- 커밋 단위로 최종 쿼리문 결과가 결정된다
- 테이블 행 잠금
- 수정 프로세스에서 접근하고 있는 행을 잠금한다
- 여러 사용자가 접근해야 하는 서비스에 적합하다
- 행 수준 잠금의 유일한 단점은 많은 메모리를 소비하며 데이터를 쿼리하고 수정하는데 많은 시간이 걸린다는 점이다
- 외래키 옵션 지원
- ACID 지원
- 쓰기 속도가 빠르며 대용량 데이터 처리 성능이 좋다
- 트랜잭션 로그를 관리하므로 에러가 발생했을 때 로그로 추적할 수 있다
- 데이터와 인덱스를 모두 캐시하는 대규모 버퍼 풀을 지원한다
- 전체 텍스트 검색은 지원하지 않는다
https://github.com/woowacourse-study/2022-Real-MySQL/issues/4