Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

BRSoo

[MySQL] innodb 와 myisam 차이 본문

Tech

[MySQL] innodb 와 myisam 차이

BR-soo 2016. 10. 20. 14:16

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 튜닝을 거치지 않으면 메모리 먹는 하마 가 될수 있습니다.





Comments