본문 바로가기
MY-SQL/table 의 ENGINE 설정

[ MYSQL ] table 의 ENGINE 설정 (MEMORY, InnoDB, MyISAM)

by 정윤재 2012. 8. 29.

MYSQL 에서는 Table 마다 다른 ENGINE 을 사용 할 수 있다.

 

사용 할 수 있는 ENGINE 에 대해서 간단히 특징을 설명 하자면

 

MyISAM : 읽기 위주 요청에 높은 성능

               테이블 단위로 locking

               (트랜잭션 안됨)

 

InnoDB : 트랜잭션 지원

             빈번한 수정, 삭제시 처리 능력 뛰어남

             디스크, 전원 등의 장애 시 복구 성능이 좋음

             동시 처리가 많은 환경에 적합함

             ROW 단위 locking

 

MEMORY :  Hash 인덱스 사용 하여 빠름 (테이블 스키마는 남음)

                  전원 off 시 데이터 삭제 됨

   

 

사용 하는 방법은

 

 

테이블 생성 시

 

CREATE TABLE memory_test(test_idx int, test_name char(5)) ENGINE=MEMORY;

 

CREATE TABLE innodb_test(test_idx int, test_name char(5)) ENGINE=InnoDB;

 

CREATE TABLE myisam_test(test_idx int, test_name char(5)) ENGINE=MyISAM;

 

와 같이 설정 해 주면 된다.

 

성능에 대해서 비교도 해보고 싶었으나 테스트 방법이 미숙 하여

 

다음 번에 다루도록 하겠다.

 

MEMORY 방식을 사용할 경우 MYSQL 재구동시 데이터가 삭제 되는 것을

 

확인 하였다. (replication 이 필수 일 것으로 보인다.)
 


댓글