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 이 필수 일 것으로 보인다.)
댓글