본문 바로가기
백엔드/DB

[MySQL] InnoDB란

by 작은소행성 2023. 7. 27.

MySQL 엔진

MySQL은 주로 MyISAM, InnoDB 두가지 스토리지 엔진중 하나를 사용한다. 

DBeaver를 통해서 본 테이블 정보

 

MyISAM, InnoDB 차이 및 사용하면 좋을 이유 

MyISAM

  • Read Only 기능이 많은 서비스 
  • 트랜잭션이나 복구가 필요 없는 경우
  • 한번에 대량 데이터를 입력하는 배치성 테이블

 

InnoDB

  • 대용량 데이터를 다룸
  • 트랜잭션 처리나 복구가 필요함
  • 오라클과 비슷한 기능들을 제공함
  • 메모리 캐시를 통한 퍼포먼스 향상

 

InnoDB 아키텍처 

https://dev.mysql.com/doc/refman/8.0/en/innodb-architecture.html

 

InnoDB In-memory구조로 

데이터와 인덱스를 메모리에 캐싱하기 위해 "버퍼풀" 이라는 저장 영역을 유지 관리 한다. 

 

 

InnoDB의 장점 

1. 성능 

  • 다수의 사용자 동시 접속 가능
  • 대용량 데이터 처리 
  • 테이블과 인덱스를 테이블 스페이스에 저장하고, 테이블 스페이스는 파일과 파티션으로 구성되어 있음 

 

2. 장애 복구 

  • 단순한 장애 복구가 아닌 논리적으로 장애 복구 수행 

 

3. 데이터 무결성 보장 

  • InnoDB 설계 시 데이터 무결성에 중점을 두었기에 데이터 무결성이 좋음 

 

 

InnoDB의 단점 

1. Deadlock 발생 

  • NODE간의 데이터 체크로 인해 Deadlock 발생 가능성이 존재

 

2. 많은 자원 소모 

  • 대용량 처리를 할 때 순간적으로 많은 자원 소모 

 

3. 데이터 복구의 어려움 

  • 단순한 파일 백업으로 복구하는 것이 아닌 특정한 방법으로 복구 수행 

 

 

반응형