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. 데이터 복구의 어려움
- 단순한 파일 백업으로 복구하는 것이 아닌 특정한 방법으로 복구 수행
반응형
'프로그래밍 언어 > DB' 카테고리의 다른 글
[DB] MySQL 샘플 데이터 (0) | 2023.09.02 |
---|---|
[SQL 튜닝] 옵티마이저(optimizer) (0) | 2023.08.27 |
[MySql] 다른 테이블과 조인해서 UPDATE 하는 방법 (0) | 2023.07.14 |
[MySQL] utf8mb4_general_ci와 utf8mb4_0900_ai_ci 차이 및 캐릭터셋 변경하기 (0) | 2023.04.18 |
[MySQL] 문자열 일부분만 가져오기 (0) | 2023.04.14 |