티스토리 뷰
최근들어 서비스를 운영하면서
업데이트이후 서버에 부하가 과도하게 걸리는 현상이 발생했다.
내부적으로 무척 많이 콜되는 api에서 업데이트를 하는 코드가 들어간게 문제였는데.
문제를 해결하면서 두 스토리지 엔진의 차이점을 찾아보았다.
간단하게 비교하면
MyISAM의 경우
InnoDB보다 먼저 개발되었는데
select속도는 무척 빠르지만
별로 지원하는 기능이 없다
또 쓰기(insert, update)작업을 할 때 테이블 단위로 락을 걸어버리기때문에
업데이트 속도가 느리다는 단점이있다.
InnoDB의 경우
상대적으로 더 무겁지만
데이터 무결성보장, 트렌젝션, 복구처리 등 여러 기능들을 지원한다
만들고자하는 제품의 구조를 보고 결정을 하면 될 듯하다.
잦은 변경 혹은 생성이 일어나는 서비스에서는 InnoDB를
아닌곳에서는 MyISAM을 사용하자.
http://dba.stackexchange.com/questions/1/what-are-the-main-differences-between-innodb-and-myisam
스택오버플로에서 잘 정리된 내용이 있어서 첨부
- InnoDB has row-level locking, MyISAM can only do full table-level locking.
- InnoDB has better crash recovery.
- MyISAM has
FULLTEXT
search indexes, InnoDB did not until MySQL 5.6 (Feb 2013). - InnoDB implements transactions, foreign keys and relationship constraints, MyISAM does not.
'전문성 > 백앤드' 카테고리의 다른 글
장고 타임존 세팅 문제점 해결 (0) | 2017.12.14 |
---|---|
[Django]장고 테스트 디비 사용하지 않고 테스트 하기 (0) | 2017.09.16 |
리눅스 서버 시간 설정하기 (0) | 2016.12.14 |
Django - selected_related, prefetch_related의 차이 (0) | 2016.12.13 |