BRSoo
[MySQL] innodb 와 myisam 차이 본문
mysql 에서는 테이블 생성시 엔진 타입을 설정 할수 있습니다.
엔진은 myisam, innodb, memory, archive, federated 등이 있죠..
오늘은 대표적으로 많이 사용하고 있는 myisam 과 innodb의 차이점을 알아 보겠습니다.
1. myisam
장점 : Full-text 인덱싱이 가능하고, select 시 우월한 속도를 보장 합니다.
단점 : non-transactional-safe 이므로 데이터 무결성을 보장 하지 않습니다.
트랜잭션을 지원하지 않기 때문에, insert, update, delete 등의 SQL에서 문제가 발생하여도
그대로 데이터가 들어가 버립니다.
2. innodb
장점 : 트랜잭션을 지원하고, 데이터의 무결성을 보장 합니다.
또한 Oracle 수준의 다양한 기능들도 있어 myisam에서 하지 못한작업을 수행할수 있습니다.
insert, update, delete 등의 SQL작업이 빠릅니다. 이는 row-level-lock 을 사용하기 때문 입니다.
단점 : innodb 는 data/index 를 캐싱하기 때문에, 시스템자원을 많이 소모 한다는 단점이 있습니다.
Full-text 인덱싱이 안되는것도 문제 입니다.(이는 5.7 에서 지원한다고 하네요)
mysql 5.5 부터는 기본스토리지 엔진으로 innodb 를 선택 했습니다.
그동안 innodb는 많은 업데이트를 거치면서, 발전을 거듭 해 왔는데요,
최근에는 우월한 select 성능을 보였던 myisam 엔진보다, 훨씬 더 빠른 성능을 innodb가 보여 준다고 하네요.
5.5 이하의 버전에서는 myisam 과 innodb 사이에서 선택의 갈림길을 걷곤 했었는데
5.7 을 사용할 예정이시면 전부 innodb로 사용하여도 문제가 없을것 같습니다.
물론, innodb도 쿼리튜닝 이나, mysql 튜닝을 거치지 않으면 메모리 먹는 하마 가 될수 있습니다.
'Tech' 카테고리의 다른 글
[MySQL] swap메모리 사용과 Filesystem Cache (0) | 2016.10.21 |
---|---|
[SMTP] SMTP 에 DKIM 적용 하기 (0) | 2016.10.20 |
[Linux] -bash: fork: 자원이 일시적으로 사용 불가능함 (0) | 2016.10.20 |