반응형
InnoDB
InnoDB는 MySQL 데이터베이스 관리 시스템에서 사용하는 저장 엔진(Storage Engine) 중 하나입니다. 특히 안정성, 데이터 무결성, 트랜잭션 지원 등을 중요시하는 시스템에서 널리 사용됩니다.
✅ InnoDB란 무엇인가요?
InnoDB는 MySQL에서 데이터를 디스크에 저장하고 관리하는 방식을 제공하는 저장 엔진입니다.
MySQL 5.5 이후로는 기본 저장 엔진(Default Engine) 으로 설정되어 있습니다.
🔧 InnoDB의 핵심 특징
1. ✅ 트랜잭션(Transactions) 지원
- ACID 원칙(원자성, 일관성, 고립성, 지속성)을 따릅니다.
- BEGIN, COMMIT, ROLLBACK 구문을 통해 안전한 작업 가능
2. ✅ 외래 키(Foreign Key) 제약조건 지원
- 테이블 간의 참조 무결성(Referential Integrity) 보장
- 예: 고객 삭제 시 주문도 같이 삭제되도록 설정 가능 (ON DELETE CASCADE 등)
3. ✅ 자동 복구 기능
- 시스템 충돌이나 전원 장애가 발생해도 로그 기반 복구 기능으로 데이터 복원
4. ✅ 레코드 수준의 잠금(Row-Level Locking)
- 동시 사용자 처리에 유리하며, 테이블 전체 잠금을 피함
- 다중 사용자 환경에서 성능 향상
5. ✅ 지연 쓰기(Write Buffering) 및 버퍼 풀(Buffer Pool) 사용
- 메모리 기반 캐시 기능을 통해 읽기/쓰기 성능 향상
- 디스크 I/O 비용 감소
📁 InnoDB의 구조
테이블 스페이스(Table Space) | 데이터와 인덱스를 저장하는 물리적 공간 (보통 .ibd 파일) |
버퍼 풀(Buffer Pool) | 자주 접근되는 데이터를 메모리에 저장 |
로그 파일(Log File) | 트랜잭션 작업 내용을 기록하여 복구 가능 |
데이터 딕셔너리 | 테이블, 인덱스, 열 등의 메타데이터 저장 |
📌 MyISAM과의 주요 차이점
항목 | InnoDB | MyISAM |
트랜잭션 지원 | O | X |
외래 키 지원 | O | X |
잠금 방식 | 행 수준(Row-level) | 테이블 수준(Table-level) |
데이터 안정성 | 높음 (자동 복구) | 낮음 (손상 위험) |
속도 | 다중 사용자 환경에 유리 | 단일 사용자나 읽기 중심 환경에 유리 |
🔍 사용 예시
CREATE TABLE orders (
id INT PRIMARY KEY,
customer_id INT,
order_date DATE,
FOREIGN KEY (customer_id) REFERENCES customers(id)
) ENGINE=InnoDB;
위의 예처럼 ENGINE=InnoDB로 명시하면, 해당 테이블은 InnoDB 저장 엔진을 사용하게 됩니다.
📝 요약정리
- InnoDB는 MySQL의 대표 저장 엔진
- 트랜잭션, 외래 키, 자동 복구 등 신뢰성이 필요한 시스템에 적합
- 멀티유저 환경, 온라인 쇼핑몰, 금융 시스템, ERP 등에 권장
“InnoDB는 단순한 저장 공간이 아니라, 데이터를 안전하게 지키는 ‘보안 금고’입니다.”
'컴퓨터과학과' 카테고리의 다른 글
MariaDB (2) | 2025.06.24 |
---|---|
MySQL 주요 버전 (1) | 2025.06.23 |
데이터베이스(Database)와 DBMS(Database Management System) (5) | 2025.06.21 |
phpMyAdmin에서 새 데이터베이스 editdb 만들기 (2) | 2025.06.06 |
phpMyAdmin, 데이터 관리 편의 증진 (3) | 2025.06.05 |
댓글