InnoDB
+ MySQL을 위한 데이터베이스 엔진
+ MySQL AB가 배포하는 모든 바이너리에 내장
+ 트랜잭션 - 세이프 스토리지 엔진
+ MyISAM 과 비슷하지만 ORACLE 처럼 많은 기능을 지원함
( commit, rollback, 장애복구, row-level locking, 외래키 등)
+ 다수의 사용자 동시접속과 퍼포먼스가 증가하여 대용량 데이터를 처리할 때 최대의 퍼포먼스를 내도록 설계되었다.
+ CPU효율은 어느 디스크 기반의 데이터 베이스와 비교해도 손색이 없고 자체적으로 메인 메모리 안에 데이터 캐싱과 인덱싱을 위한 버퍼 풀을 관리
+ 테이블과 인덱스를 테이블 스페이스에 저장을 하고 테이블 스페이스는 몇 개의 서버 파일이나 디스크 파티션으로 구성되어 있는데 이것은 MyISAM과 다른 점이다. MyISAM은 테이블과 인덱스를 각각 분리된 파일로 관리
+ InnoDB테이블은 OS의 파일 사이즈 한계가 2GB이더라도 상관없이 어느 크기나 가질 수 있음
+ InnoDB는 높은 퍼포먼스가 필요한 대용량 사이트에 적합
InnoDB의 장점
+ MyISAM과 달리 InnoDB는 트랜잭션을 지원하므로 트랜잭션-세이프 스토리지 엔진에 해당됩니다.
+ 데이터 무결성에 대한 보장이 가능
+ 제약조건, 외래키의 생성이 가능, 동시성 제어가 가능
+ MyISAM의 Table Lock에 비해 InnoDB는 Row-level Lock을 사용하기 때문에 변경(INSERT, UPDATE, DELETE)에 대한 속도가 빠르다.
InnoDB의 단점
+ 여러가지 기능을 제공하다보니 데이터 모델 디자인에 많은 시간이 필요하다.
+ 시스템 자원을 많이 사용한다.
+ Full-Text 인덱싱이 불가능하다.
InnoDB의 경우 트랜잭션 처리가 필요한 작업을 수행하며, 데이터 입력 및 수정과 같이 변경이 빈번한 높은 퍼포먼스를 요구하는 대용량 사이트 등에서 효율적으로 사용될 수 있다.
[참고]