MySQL 스토리지 엔진 MyISAM과 InnoDB의 차이

by ADMINPLAY posted Jun 25, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

MyISAM : 비-트랜젝션-세이프(non-transactional-safe) 테이블을 관리한다. 이 엔진은 전체 문장 검색 능력 뿐만 아니라, 고-성능 스토리지 밀 복구 기능을 제공한다. MyISAM은 모든 MySQL 구성에서 지원되며, 여러분이 MySQL을 다른 타입의 엔진으로 디폴트 구성하지 않는 한 이 엔진이 디폴트 스토리지 엔진으로 구성

 

1) 예전의 MySQL 의 Storage Engines 으로 MyISAM 을 사용했었습니다.
예를 들자면 블로그라던지, 게시판 처럼 한사람이 글을 쓰면 다른 많은 사람들이 글을 읽는 방식에
최적의 성능을 발휘를 하지요. 지금도 많이 사용하고 있는 방식입니다.
2) 제공하는 웹서비스다 그닥 크지 않다면 이것을 사용해도 괜찮다고 생각을 합니다

 

InnoDB 및 BDB 스토리지 엔진은 트랜젝션에 안전한 테이블을 제공한다. BDB는 이 엔진을 지원하는 OS상의 MySQL-Max 바이너리 배포판에 포함되어 있다. InnoDB는 또한 모든 5.0 바이너리 배포판에 디폴트로 포함되어 있다. 소스 배포판의 경우, 여러분의 MySQL을 구성할때 선호하는 방식에 따라서 각각의 엔진을 활성화 또는 비활성화 시킬 수가 있다.

 

1) 트랜잭션-세이프 스토리지 엔진입니다.
2) MyISAM 과 비슷하지만 ORACLE 처럼 많은 기능을 지원을 합니다.
(* commit, rollback, 장애복구, row-level locking, 외래키 등)
3) 다수의 사용자 동시접속과 퍼포먼스가 증가하여 대용량 데이터를 처리할 때 최대의 퍼포먼스를 내도록 설계되었습니다.
CPU효율은 어느 디스크 기반의 데이터 베이스와 비교해도 손색이 없고
자체적으로 메인 메모리 안에 데이터 캐싱과 인덱싱을 위한 버퍼 풀(pool)을 관리합니다.
4) 테이블과 인덱스를 테이블 스페이스에 저장을 하고 테이블 스페이스는 몇개의 서버파일이나 디스크 파티션으로
구성되어있습니다. 이것은 MyISAM 과 다른 점인데, MyISAM은 테이블과 인덱스를 각각 분리된 파일로 관리합니다.
여기서 중요한것이 이제 InnoDB 를 제대로 사용을 하기 위해서는 테이블 스페이스 라는 개념을 파악을 하셔야합니다.
이것에 대해서는 밑에서 따로 언급을 하겠습니다.
5) InnoDB 테이블은 OS의 파일 사이즈 한계가 2GB이더라도 상관없이 어느 크기나 가질 수 있습니다.
6) InnoDB는 높은 퍼포먼스가 필요한 대용량 사이트에 적합합니다.