백엔드/DB
[MySQL] InnoDB란
작은소행성
2023. 7. 27. 21:37
MySQL 엔진
MySQL은 주로 MyISAM, InnoDB 두가지 스토리지 엔진중 하나를 사용한다.
MyISAM, InnoDB 차이 및 사용하면 좋을 이유
MyISAM
- Read Only 기능이 많은 서비스
- 트랜잭션이나 복구가 필요 없는 경우
- 한번에 대량 데이터를 입력하는 배치성 테이블
InnoDB
- 대용량 데이터를 다룸
- 트랜잭션 처리나 복구가 필요함
- 오라클과 비슷한 기능들을 제공함
- 메모리 캐시를 통한 퍼포먼스 향상
InnoDB 아키텍처
InnoDB In-memory구조로
데이터와 인덱스를 메모리에 캐싱하기 위해 "버퍼풀" 이라는 저장 영역을 유지 관리 한다.
InnoDB의 장점
1. 성능
- 다수의 사용자 동시 접속 가능
- 대용량 데이터 처리
- 테이블과 인덱스를 테이블 스페이스에 저장하고, 테이블 스페이스는 파일과 파티션으로 구성되어 있음
2. 장애 복구
- 단순한 장애 복구가 아닌 논리적으로 장애 복구 수행
3. 데이터 무결성 보장
- InnoDB 설계 시 데이터 무결성에 중점을 두었기에 데이터 무결성이 좋음
InnoDB의 단점
1. Deadlock 발생
- NODE간의 데이터 체크로 인해 Deadlock 발생 가능성이 존재
2. 많은 자원 소모
- 대용량 처리를 할 때 순간적으로 많은 자원 소모
3. 데이터 복구의 어려움
- 단순한 파일 백업으로 복구하는 것이 아닌 특정한 방법으로 복구 수행
반응형