Skip to content

InnoDB

이노DB(InnoDB)는 MySQL을 위한 데이터베이스 엔진이며, MySQL AB가 배포하는 모든 바이너리에 내장되어 있다. MySQL과 사용할 수 있는 다른 데이터베이스 엔진에 대한 개선 사항으로 PostgreSQL을 닮은 ACID 호환 트랜잭션에 대응하고 있는 것이 있다. 또한 외래 키(FK)도 지원하고 있다. (이것을 선언적 참조 무결성이라 한다.)

2005년 10월 Innobase사가 오라클에 인수된 후 InnoDB는 오라클의 제품이 되었다. 이 소프트웨어는 듀얼 라이선스이며, GNU General Public License 하에 유통되고 있지만, InnoDB를 독점 소프트웨어와 융합시키고 싶은 단체를 위해 라이선스가 판매될 수 있다.

MyISAM vs InnoDB

MyISAM
MyISAM은 Table과 Index를 각각 다른 파일로 관리
Read Only기능이 많은 서비스일 수록 MyISAM엔진이 효율적
InnoDB
트랜잭션 처리가 필요하고 대용량의 데이터를 다루기 위해서는 InnoDB가 효율적
  • InnoDB는 Tablespace 개념을 사용한다.
  • innodb_system 이라는 테이블스페이스로 기본적으로 구성된다.
  • mysql 설치시 디폴트로 ibdata 파일이 있음
  • 환경변수 : innodb_data_file_path, innodb_data_home_dir

InnoDB 엔진 주요 특징

InnoDB는 PK를 기준으로 클러스터링
따라서, 다른 보조 Index보다 PK를 우선적으로 탐색하는 경향이 존재
Oracle의 아키텍쳐 적용
MVCC (Multi version Concurrency Control) 및 테이블 스페이스 등 오라클에서 주로 사용되는 개념들이 적용됨
  • MVCC : 락을 걸지않고 작업을 수행함으로써, 다른 트랜잭션이 갖고있는 락을 기다리지않고 읽기작업이 가능

See also

Favorite site