공부/MySQL

Storage Engine InnoDB, MyISAM의 대해서

inSaPPoRo 2017. 2. 7. 16:40

일본 야후  사내 사용되는 MySQL 튜닝 세미나라는 slideshare를 보고 있는데  아래와 글을 보았다.

InnoDB를 전제 MyISAM는 이제 졸업하자 

지금까지 마무 생각 없이 기본 설정으로 해왔는데 위 문구를 보니 갑자기 궁금해져서 나중에 또 보려고 메모.


스토리지엔진(Storage Engine)이란?

InnoDB,MyISAM는 MySQL의 가장 많이 사용되고 있는 스토리지 엔진이라고 합니다.
MySQL같은 데이터베이스 관리 시스템이 데이터베이스에 데이터를 쓰거나 읽거나 할때 사용되는 기초를 스토리지 엔진이라고 합니다.
생각 없이 MySQL가 대 해주는 식으로 생각 하고 있었지만 그 안에 여러 가지 일을 담당하는 부분에 하나로 가장 중요한 데이터를 읽고 쓰는 부분을 담당하는 것이 스토리지 엔진 이라고 합니다.

MyISAM와 InnoDB의 차이점

  • Lock 정도 
  • 트랜잭션등 지원 기능

저의 능력으로는 많은 검색으로 나온 내용들중에 이 두가지만 이해할수 있었습니다.

Lock 정도를 설명 하자면 MyLSAM는 리퀘스트가 오면 테이블 단위로 Lock를 건다고 합니다. 반면 InnoDB는 행 단위로 Lock를 건다고 합니다. 
단순히 쓰기는 적고 읽기가 많으면 MyLSAM를 이용하면 좋아 보입니다. 반대로 쓰기가 많은 작업은 MyLSAM같이 테이블이 Lock이 걸려 버리면 대기 해야 하니 InnoDB를 사용하는것이 좋을지 싶습니다. 

저는 트렌잭션을 생각 없이 사용했는데 MyLSAM는 지원 하지 않나 봅니다. MySQL 5.5 부터는 기본 설정이 InnoDB로 되어있어서 인지 생각 없이 사용했습니다.
이처럼 MyLSAM가 InnoDB보다 나중에 나와서? 기능이 여러 가지 많다고 합니다. 기능이 많으면 적은것 보다는 시스템 자원을 많이 먹겠지요.

정리

오랜 시간 MySQL 사용하면서 별로 생각한적 없었던 두가지 엔진에 대해서 조사해봤습니다.
상황에 맞는 선택으로 사용하면 좋을것 같습니다. 
그냥 생각 없이 InnoDB를 사용할것 같기도 합니다.^^




반응형